0

我正在尝试对一个类的实例进行深度复制,但我得到了:

object has no __deepcopy__ atrribute

错误。

该类被锁定在 a 中.pyd,因此无法修改。

有没有办法在不使用 deepcopy 的情况下按值复制这些对象?

4

1 回答 1

1

您必须复制对象状态。最简单的方法是使用该pickle模块:

import pickle

copy = pickle.loads(pickle.dumps(someobject))

不能保证有效。在一般情况下,pickle 模块为您所做的所有事情都是腌制实例属性,并从类引用中重新恢复实例并恢复其上的属性内容。

由于这是一个 C 扩展对象,如果实例状态没有暴露给您,并且类型不明确支持酸洗,这也不起作用。在那种情况下,恐怕你别无选择。

于 2013-03-21T16:59:55.613 回答