在Python中,对象的赋值,拷贝(深/浅拷贝)之间是有差异的,如果使用的时候不注意,就可能产生意外的结果。下面就让我们一起来看看它们之间具体存在的差异吧!
浅拷贝
- 浅拷贝是对于一个对象的顶层拷贝
通俗的理解是:拷贝了引用,并没有拷贝内容
深拷贝
- 深拷贝是对于一个对象所有层次的拷贝(递归)
进一步理解深拷贝
拷贝的其他方式
- 分片表达式可以赋值一个序列
- 字典的
copy
方法可以拷贝一个字典
注意点
浅拷贝对不可变类型和可变类型的copy不同
copy.copy
对于可变类型,会进行浅拷贝*copy.copy
对于不可变类型,不会拷贝,仅仅是指向
1 | In [88]: a = [11,22,33] |
copy.copy和copy.deepcopy的区别
copy.copy()
copy.deepcopy()