Python 3.x 如何在python中导入模块后获取其完整名称空间
我想要上面的代码片段打印“foo.bar.bar”Python 3.x 如何在python中导入模块后获取其完整名称空间,python-3.x,Python 3.x,我想要上面的代码片段打印“foo.bar.bar” 如何在python3中执行此操作?每个导入的模块都列在sys.modules中。因此,您可以遍历sys.modules,以找到与模块关联的路径: from foo.bar import bar print(get_namespace(bar)) 由于单词名称空间是为保留的,因此我将函数get\u module\u name重命名为bar函数还是子模块? import sys def get_module_name(mod): fo
如何在python3中执行此操作?每个导入的模块都列在
sys.modules
中。因此,您可以遍历sys.modules
,以找到与模块关联的路径:
from foo.bar import bar
print(get_namespace(bar))
由于单词
名称空间
是为保留的,因此我将函数get\u module\u name
重命名为bar
函数还是子模块?
import sys
def get_module_name(mod):
for path, module in sys.modules.items():
if mod == module:
return path
raise ValueError('module not found')
from foo.bar import bar
print(get_module_name(bar))
# foo.bar.bar