似乎我找到了适用于我的简单解决方案:
假设我们有
C一个由SWIG生成的类,然后将其包装为
class PickalableC(C, PickalableSWIG): def __init__(self, *args): self.args = args C.__init__(self)
这里
PickalableSWIG是
class PickalableSWIG: def __setstate__(self, state): self.__init__(*state['args']) def __getstate__(self): return {'args': self.args}然后
pickle.loads(pickle.dumps(C()))
失败,但是
pickle.loads(pickle.dumps(PickalableC()))
成功=)



