在用Python寫代碼的時候往往會遇到真復制和假復制的問題,真復制就是創建一個新的實例(instance),而假復制就是把原對象的引用賦給了新的標志符。判斷是不是真復制可以使用id()這個函數。
當然,復制可以使用import copy,然后copy.copy(object),copy.deepcopy(object)來解決。通常意義下copy和deepcopy的作用都是深復制,不放心的話可以使用id()或者is來判斷一下。
numpy用的非常廣,它給我們提供了一個非常好用的深復制的用法:
>>>A = np.array([[1,2],[3,4]]) >>>B = np.array(A, copy=True) >>>A is B False
當然了,這里的copy值默認就是True。這樣就實現了深復制,如果copy值是False,A就和B完全等價了,實現不了真復制!