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

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

Linda Hamilton
发布: 2024-12-06 09:08:15
原创
164 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板