如何解开其类存在于另一个命名空间(python)中的对象?

如何解开其类存在于另一个命名空间(python)中的对象?,第1张

如何解开其类存在于另一个命名空间(python)中的对象?

我发现了一个解决方案。看来问题是在dict中执行代码会阻止python弄清楚类的定义位置。解决方案是创建一个空模块,执行模块中的代码,然后将该模块添加到sys.modules中,以便python知道。

script = """class myClass:    def __init__(self):        self.name = 'apple'        self.color = 'green'"""import imp, sysmoduleName = 'custom'module = imp.new_module(moduleName)exec script in module.__dict__sys.modules[moduleName] = module

Now it is possible to pickle and unpickle an instance of the class:

import picklea = module.myClass()s = pickle.dumps(a)b = pickle.loads(s)


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

原文地址: https://outofmemory.cn/zaji/5617734.html

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

发表评论

登录后才能评论

评论列表(0条)

保存