【发布时间】:2019-05-24 11:46:47
【问题描述】:
我有一个继承自 boost-python 类的类:
class Magnet(CMagnet): # CMagnet is a C++ based boost-python class
def __init__(self):
CMagnet.__init__(self)
def python_method(self):
...
在 CMagnet 的 C++ 实现中,我使用了来自 1 的代码,发布在 2 中。
我现在遇到以下问题:当我执行以下操作时:
magnet = Magnet()
magnet_2 = copy.deepcopy(magnet)
那么magnet 的类型为Magnet,magnet_2,然而,类型为CMagnet。我需要它也是Magnet 类型。它缺少所有Magnet 方法。如何让 deepcopy 复制(并返回)整个 Magnet 对象,而不仅仅是 CMagnet 部分的副本?
【问题讨论】:
-
有一个related question表示你应该自己实现
__deepcopy__,但我不知道你是否已经在这样做,或者你的实现是否有任何错误;就像@Leon 所说,最好提供一个可重现的示例。
标签: python boost-python deep-copy