【发布时间】:2013-04-25 09:58:00
【问题描述】:
我正在开发一个实时应用程序,有时我需要为始终使用相同数据的新对象创建实例。
首先,我只是将它们实例化,但后来我意识到使用copy.deepcopy 可能会更快。现在,我发现有人说deepcopy 非常慢。
我不能简单地使用copy.copy,因为我的对象有列表。
我的问题是,您知道更快的方法还是我只需要放弃并再次实例化它们? 感谢您的宝贵时间
【问题讨论】:
-
我想知道,如果我只是在这些对象中添加一个 'def __copy__(self):' 并复制回我在这些对象中的这些列表呢?
-
deepcopy只是在结构上递归并创建新实例。它很聪明地避免了无限循环,并且可以自定义,仅此而已。 -
所以
deepcopy将检查您的所有列表值以查看它们是否也需要复制;__copy__创建列表的新副本将有助于避免这种情况,是的。