Python:如何将模块中的对象导入到本地引用



我正在从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">

如果您想获得,您应该在当前文件中移动类。

最新更新