python中的copy.copy和copy.deepcopy


一個例子就搞清楚

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']]

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM