python碎碎念(一)

来源:互联网 发布:java 神经网络 开源 编辑:程序博客网 时间:2024/05/15 02:06

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