我尝试导入一个模块作为函数的参数。但是我的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)