1. 程式人生 > >python中的copy.copy和copy.deepcopy

python中的copy.copy和copy.deepcopy

highlight 理解 import append 拷貝 clas 賦值 class int

一個例子就搞清楚

import copy  
a = [1, 2, 3, 4, [‘a‘, ‘b‘]] #原始對象  
b = a #賦值,傳對象的引用  
c = copy.copy(a) #對象拷貝,淺拷貝  
d = copy.deepcopy(a) #對象拷貝,深拷貝  
  
a.append(5) #修改對象a  
a[4].append(‘c‘) #修改對象a中的[‘a‘, ‘b‘]數組對象  
  
print ‘a = ‘, a  
print ‘b = ‘, b  
print ‘c = ‘, c  
print ‘d = ‘, d  

輸出結果: 
a = [1, 2, 3, 4, [‘a‘, ‘b‘, ‘c‘], 5] 
b = [1, 2, 3, 4, [‘a‘, ‘b‘, ‘c‘], 5] 
c = [1, 2, 3, 4, [‘a‘, ‘b‘, ‘c‘]] 
d = [1, 2, 3, 4, [‘a‘, ‘b‘]]

也可以這麽理解,淺拷貝只引用了一級對象
深拷貝很容易理解,可以理解為完全獨立的兩個東西了

python中的copy.copy和copy.deepcopy