如何使SWIG扩展模块与Pickle一起使用?

如何使SWIG扩展模块与Pickle一起使用?,第1张

如何使SWIG扩展模块与Pickle一起使用?

似乎我找到了适用于我的简单解决方案:

假设我们有

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()))

成功=)



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5631002.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存