Python:使用copy.deepcopy复制对象或自己编写复制方法
目前我正在使用一个叫做copy的模块来复制我手头上的一些对象。
在某些情况下(这种情况经常发生),我需要创建多个原始对象的副本,然后对每个副本进行单独的修改(这就是我使用copy的原因)。
这个对象里面有好几种不同的数据类型(比如列表、整数、字符串,还有其他类),这些副本需要保持相同的值,但我不确定使用copy.deepcopy()会不会更快,还是像下面这样做更好:
def copy(self, other): other.prop1 = self.prop1 other.prop2 = self.prop2 other.prop3 = self.prop3
有没有人遇到过这个问题,然后觉得使用copy模块会比其他大多数人想到的方法更快呢?
附言:上面的代码不能正确复制可变对象和我提到的那些“其他类”。也许这说明deepcopy是最安全(也是最快)的选择?
1 个回答
2
我不是想随便说说,但你有没有考虑过对你的代码进行性能分析?这里有相关文档。你可以把copy.deepcopy和你自己写的复制方法进行比较。这样你就能得到一些具体的数据,帮助你了解自己的情况,从而做出最好的决定。如果有人问你为什么这么做,你也能有依据来解释!