python碎碎念(一)

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模塊的文檔。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章