2.16 使用__import__函数动态导入模块
在Python中,__import__是一个内置函数,用于动态导入模块。它的语法如下:
import(name, globals=None, locals=None, fromlist=(), level=0)
其中,name是要导入的模块名称,globals和locals是可选的命名空间字典,fromlist是可选的导入对象列表,level是可选的相对导入级别。
__import__函数返回导入的模块对象。它通常用于在运行时动态地导入模块,例如在编写插件系统或动态加载模块时。但是,使用import语句更为常见和推荐,因为它更易于阅读和使用。
下面是几个使用__import__动态导入的示例:
导入模块并指定别名:
imported_module = __import__('module_name', globals(), locals(), ['function_name'], 0) # 动态导入'module_name'中的'function_name'
my_module = imported_module.function_name
动态导入模块中的类:
imported_module = __import__('module_name', globals(), locals(), ['class_name'], 0) # 动态导入'module_name'中的'class_name'
my_class = getattr(imported_module, 'class_name')
动态导入模块中的变量:
print(__import__('math').pi)
需要注意的是,在Python 3中,__import__函数官方不建议使用,而是推荐使用importlib库中的import_module函数来代替。
from importlib import import_module
a = import_module('math')
print(a.pi)