0%

python浅拷贝和深拷贝

先来看题:

1
2
3
4
5
kvps = {'1':1,'2':2}
theCopy = kvps.copy()
kvps['1'] = 5
sum = kvps['1'] + theCopy['1']
print(sum)

最后输出什么呢
答案是6
这就是copy()和deepcopy()的区别了
贴三张图就明白了

  1. a = b直接赋值,指向同一个对象

a和b指向同一个对象
2. b = a.copy(): 浅拷贝, a 和 b 是一个独立的对象,但他们的子对象还是指向统一对象(是引用)

他们的子对象还是指向统一对象
3. b = a.deepcopy():深拷贝, a 和 b 完全拷贝了父对象及其子对象,两者是完全独立的。

两者是完全独立的

Welcome to my other publishing channels