如何在Python 3中导入一个模块作为函数的参数?



我尝试导入一个模块作为函数的参数。但是我的PyCharm显示了一个错误:

代码

#这个程序告诉我来自模块的所有命令(例如os)def schow(名称):导入名称

a = list((str(dir(name))).split(","))
for i in range(0, len(a)):
print(str(i) + a[i])

schow (os)

错误

Traceback(最近一次调用):文件"/用户//PyChrm///.py",第10行schow(os) NameError: name 'os' is not defined

进程结束,退出代码1

正如这里所评论的,您正在寻找importlib.import_module模块。

你可以这样做:

import importlib
# Single line import
importlib.import_module('itertools.combinations')
# Looping import
MODULES = {
'typing': ['Optional', 'Union', 'List']
}
for (module, submodules) in MODULES.items():
for submodule in submodules:
importlib.import_module(f"{module}.{submodule}")

或者您可以手动执行,像这样:

MODULES = {
'itertools': ['combinations'],
'typing': ['Optional', 'Union', 'List']
}
for (module, submodules) in MODULES.items():
import_str = f"from {module} import {', '.join(submodules)}"
exec(import_str)

相关内容

最新更新