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模块的文档。

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