copy.copy 淺拷貝 只拷貝父對象,不會拷貝對象的內部的子對象。
copy.deepcopy 深拷貝拷貝對象及其子對象
示例:
>>> import copy
>>> a=[1,2,3,4,['a','b']]
>>> b=a # 所引用。相當於現在b與a指向了同一塊記憶體區域
# 淺拷貝。相當於c與a現在是兩個單獨的記憶體區域
>>> d=copy.deepcopy(a) # 深拷貝。相當於完全獨立的記憶體區域
>>> a.append(5) # 這個是在外層物件即父物件處理會影響copy淺拷貝
>>> a[4].append('c
>>> a[4].append('c>>> a[4]. # 這個是內部子物件不會影響.即還是指向一塊
>>> print 'a',a
a [1, 2, 3, 4, ['a', 'b', 'c'] , 5]
>>> print 'b',b
b [1, 2, 3, 4, ['a', 'b', 'c'], 5]
>>> print 'c ',c
c [1, 2, 3, 4, ['a', 'b', 'c']]
>>> print 'd',d
d [1, 2, 3, 4, ['a', 'b']]
>>>
如果受到拷貝的話,那就是相互獨立的了。
像copy.copy的話其實是做了淺拷貝的因為是父對象所以:父對像不受影響了是單獨的兩塊區域 。
結論:哪個拷貝了哪個就是單獨的記憶體區域。與原始的內存是分開的。再怎麼修改也影響不到我