深拷贝、浅拷贝
1. 浅拷贝
- 浅拷贝是对于一个对象的顶层拷贝
通俗的理解是:拷贝了引用,并没有拷贝内容
2. 深拷贝
- 深拷贝是对于一个对象所有层次的拷贝(递归)
进一步理解拷贝
3. 拷贝的其他方式
浅拷贝对不可变类型和可变类型的copy不同
对于列表(可变类型)进行深拷贝,对于元祖(不可变类型)进行浅拷贝
1 In [88]: a = [11,22,33] 2 3 In [89]: b = copy.copy(a) 4 5 In [90]: id(a) 6 Out[90]: 59275144 7 8 In [91]: id(b) 9 Out[91]: 59525600 10 11 In [92]: a.append(44) 12 13 In [93]: a 14 Out[93]: [11, 22, 33, 44] 15 16 In [94]: b 17 Out[94]: [11, 22, 33] 18 19 In [95]: 20 21 In [95]: 22 23 In [95]: a = (11,22,33) 24 25 In [96]: b = copy.copy(a) 26 27 In [97]: id(a) 28 Out[97]: 58890680 29 30 In [98]: id(b) 31 Out[98]: 58890680
copy对于列表,只深拷贝一层