Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在尝试对一个类的实例进行深度复制,但我得到了:
object has no __deepcopy__ atrribute
错误。
该类被锁定在 a 中.pyd,因此无法修改。
.pyd
有没有办法在不使用 deepcopy 的情况下按值复制这些对象?
您必须复制对象状态。最简单的方法是使用该pickle模块:
pickle
import pickle copy = pickle.loads(pickle.dumps(someobject))
这不能保证有效。在一般情况下,pickle 模块为您所做的所有事情都是腌制实例属性,并从类引用中重新恢复实例并恢复其上的属性内容。
由于这是一个 C 扩展对象,如果实例状态没有暴露给您,并且类型不明确支持酸洗,这也不起作用。在那种情况下,恐怕你别无选择。