python中a = a+b与a += b的不同
a = a + b
创建过程是:先创建的a+b的对象放入内存,然后变量a指向了a+b的对象,这事实上已经改变了a原本的指向,指向了新的地址。
a += b
创建过程是:把a原本指向内存地址的对象的值改变成了a+b,能不能改变取决于该对象的值能不能被改变。
对于可变对象类型和不可变对象类型有不同的结果:
可变对象类型:+=改变了原本地址上对象的值,不改变原本的指向地址;=则改变了原本的指向地址,创建了新的对象,并指向新的地址
不可改变对象类型:都是改变原本的指向地址,指向新创建的对象地址