首页 >后端开发 >Python教程 >在 Python 中从字符串导入模块时,'__import__”和'importlib.import_module”有何不同?

在 Python 中从字符串导入模块时,'__import__”和'importlib.import_module”有何不同?

Linda Hamilton
Linda Hamilton原创
2024-12-06 09:08:15207浏览

How Do `__import__` and `importlib.import_module` Differ When Importing Modules from Strings in Python?

使用“__import__”和导入语句从字符串导入模块的不同结果

使用嵌套库时,常见的任务是使用字符串变量动态导入子模块作为导入路径。但是,与典型的 import 语句相比,“__import__”函数可能会产生不同的结果。

在您的示例中,当使用“__import__”而不指定“fromlist”参数时:

i = __import__('matplotlib.text')

导入的模块 i 包括基本 matplotlib 模块和其他模块。要专门导入 matplotlib.text 子模块,可以将代码修改为:

i = __import__('matplotlib.text', fromlist=[''])

在 Python 3.1 或更高版本中,还可以使用 importlib 模块:

import importlib

i = importlib.import_module("matplotlib.text")

这里有需要考虑的一些附加注意事项:

  • 对于从子文件夹导入模块,应指定导入路径 因此。例如,要从 feature 子文件夹导入 email.py,请使用:
importlib.import_module("feature.email")
  • 在 Python 3.3 之前,必须在包含以下内容的文件夹中包含 __init__.py 文件:正在导入的模块。从 Python 3.3 开始不再需要此操作。

以上是在 Python 中从字符串导入模块时,'__import__”和'importlib.import_module”有何不同?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn