python3:直接赋值、浅拷贝、深拷贝的区别
转载自文章:
http://blog.****.net/m0_38008539/article/details/95201503
- 直接赋值相当于引用(别名),其父对象和子对象均指向指向同一个对象,所以a和b及里面的子列表,a与b任何一个改变都会随着改变。即直接赋值,无论做什么修改都会随着改变
- 浅拷贝:a 和 b 是一个独立的对象,但他们的子对象还是指向统一对象(是引用).所以如果不是子列表再改变那么b不会随a变,只有a里面的子对象发生了改变b才会随着改变,可以看出,copy仅拷贝对象本身,不对其中的子对象进行拷贝,故对子对象的修改也会随着修改(针对嵌套的数据,即复合对象)
- 深拷贝:真正意义上的复制,即从新开辟一片空间, a 和 b 完全拷贝了父对象及其子对象,两者是完全独立的。即,a不会随b改变,b也不会随a改变