在用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完全等价了,实现不了真复制!