我正在从pickle加载一个对象,它依赖于其他对象。为了对它们进行排序,我把它们放在一个模块中
问题是,例如模块set.py
中有一个对象foo
,导入时它将变成<class 'set.foo'>
而不是<class 'foo'>
,因此从pickle加载的对象无法找到依赖关系。
我已经尝试过:import set
from set import foo
/from set import *
from set import foo as foo
并打印它以查看引用
,但它仍然作为<class 'set.foo'>
导入
我使用解决了我的问题
locals()['foo'] = __import__('set').__dict__['foo']
参见";全局";以及";导入__main__">
它在模块set
中创建了foo
与局部变量的绑定,因此从pickle加载对象可以在__main__
中找到依赖关系。
我想这是在告诉你的文件名,然后是类名。您的文件名"set.py">,并且您正在导入">foo"类。因此它告诉您foo[/strong>obj来自文件集,其foo类<类"set.foo">
如果您想获得,您应该在当前文件中移动类。