python對象的複製
python中的類型爲序列型或者類的變量,在傳遞的過程中都是傳引用。如何複製對象的值而不是其引用呢?
工廠方法:list() dict()等
dict: copy() 方法 , list: [:] slice copy
以上爲淺拷貝(shallow copy),一般來說已經夠用。但是當對象內部還有其他類似的變量引用時,所生成的拷貝里是保留引用呢,還是也做一份複製呢? 如果也做一份複製,那就用到深層拷貝(deep copy)。有個模塊copy專門做這個事情。
import copy
x = copy.copy(y) # make a shallow copy of y
x = copy.deepcopy(y) # make a deep copy of y
一個類要支持copy模塊得實現一些特殊的方法。具體的查看copy模塊的文檔。