-
浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象。他们的子对象还是指向统一对象(是引用)。
-
深拷贝(deepcopy): copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象。
-
>>> a=[1,[1,2,3]] >>> b=a.copy() >>> b [1, [1, 2, 3]] >>> a [1, [1, 2, 3]]
此时,b是a的浅拷贝。
- 改变a[1],(一个子对象[1,2,3]),发现b的内容也发生了改变,因为浅拷贝,二者的子对象仍指向同一个。
-
>>> a[1].append(4) >>> a [1, [1, 2, 3, 4]] >>> b [1, [1, 2, 3, 4]]
- 深拷贝,看似和浅拷贝相同
- 改变了a的子对象后,发现b的子对象未发生变化。即a和b的子对象,相互独立。
-
>>> a[1].append(5) >>> a [2, [1, 2, 3, 4, 5]] >>> b [2, [1, 2, 3, 4]]
- 希望不要再忘了。。