深拷貝、淺拷貝
阿新 • • 發佈:2018-08-11
遞歸 col bsp ima span .com 分享 pen 淺拷貝
深拷貝、淺拷貝
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對於列表,只深拷貝一層
深拷貝、淺拷貝