目前我正在使用copy模块创建一些对象的副本。
在某些情况下(频繁发生),我需要创建可能有几个原始对象的副本,然后分别修改每个副本(这就是为什么我使用copy的原因)。
该对象具有各种数据类型的多个实例(列表、整数、字符串、其他类),这些副本需要具有相同的值,但我不确定调用copy.deepcopy()是否更快,或者做类似于以下内容:
def copy(self, other): other.prop1 = self.prop1 other.prop2 = self.prop2 other.prop3 = self.prop3
是否更快?有没有人遇到过这个问题,然后决定使用copy模块,因为它比大多数人能想出来的任何东西都要快?
附注:上面的代码无法正确复制可变对象和那些“其他类”。也许这表明深度拷贝是最安全(也是最快)的方法?
a = [1,2,3]; b = a; b.append(4); print a
的结果是[1,2,3,4]
。 - lambacckshallow_copy
。 - Maxim Egorushkin