Python:使用copy.deepcopy复制对象或编写自己的副本

时间:2011-08-12 13:59:32

标签: python deep-copy

目前我正在使用复制模块来创建我拥有的某个对象的副本。

在某些情况下(经常发生),我需要创建原始对象的几个副本,然后单独修改它们(因此我使用副本的原因)。

该对象有多个不同数据类型的实例(列表,整数,字符串,其他类),副本需要具有相同的值,但我不确定调用copy.deepcopy()是否会更快,或者做点什么

def copy(self, other):
   other.prop1 = self.prop1
   other.prop2 = self.prop2
   other.prop3 = self.prop3

有没有人遇到这个问题,然后决定使用复制模块更好,因为它会比大多数人想出来的更快?

PS:上面的代码无法正确复制我提到的可变对象和那些“其他类”。也许这表明深度扫描是最安全(和最快)的途径?

1 个答案:

答案 0 :(得分:2)

不要试图搞笑,但你考虑过分析你的代码吗? Documentation here。将copy.deepcopy与您自己的自定义复制方法进行比较。这样你就可以得到关于你的特定情况的硬数据,并做出最好的决定 - 如果有人问你为什么这么做的话就备份它!