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