Python __import__() 语法
__import__() 是 Python 的一个内置函数,它用于动态地导入模块。与 import 语句不同,__import__() 函数可以在程序运行时动态导入模块,使得程序可以更加灵活地处理模块的导入。
语法:
__import__(name, globals=None, locals=None, fromlist=(), level=0)说明:
__import__() 函数接收以下参数。
name(必选):要导入的模块名(字符串形式)。globals(可选,默认值:None):表示全局命名空间。locals(可选,默认值:None):表示局部命名空间。fromlist(可选,默认值:空元组):表示需要导入的属性名列表。如果不指定 fromlist,则表示导入整个模块。level(可选,默认值:0):表示相对导入的层级。level = 0 表示绝对导入,level = 1 表示从当前模块的父包导入。
注意:
- __import__() 是一个相对低级的函数,它在实际应用中很少会使用,大多数情况下使用 import 语句就已经足够了。
- 如果需要动态导入模块,官方更加推荐使用 importlib.import_module(),而不是 __import__() 。 importlib.import_module() 语法更清晰且更符合 Python 的设计哲学。
Python __import__() 摘要
| 使用频率 | 极低 |
|---|---|
| 官方文档 | 查看 |
| 相关函数 | reload() |
Python __import__() 示例
接下来,我们通过一个简单的例子来讲解 Python __import__() 函数是如何使用的。
示例:__import__() 基本用法
# 导入 os 模块
os = __import__('os')
# 导入 os.path 模块
path = __import__('os.path')
# 导入 os.path 模块 getsize 方法
getsize = __import__('os.path', fromlist=['getsize']).getsize分析:
__import__() 函数可以动态导入模块及其属性,不过小伙伴们需要注意以下 2 点。
- 如果要导入的模块位于当前文件目录下,可以直接使用 importlib 模块的 import_module() 函数导入,这样更加直观方便。
- 如果要导入的模块较为复杂,可以使用 importlib 模块的 util.find_spec() 函数查找模块,然后使用 importlib 模块的 util.module_from_spec() 函数加载模块,这种方式更加灵活可控。
