__import__() 底层 import 函数

最后更新:2026-09-22

__import__() 底层 import 函数

__import__ 是 import 语句底层调用的函数;日常请用 import 语句。仅在动态导入场景使用。

分类内置函数
类型内置函数
Python 版本all

📝 语法

__import__(name, globals=None, locals=None, fromlist=(), level=0)

⚙️ 参数

name 必选模块名(字符串)。
globals 可选全局命名空间字典。(默认值:None)
locals 可选局部命名空间字典。(默认值:None)
fromlist 可选要导入的子模块或属性名列表。(默认值:())
level 可选相对导入层级;0 表示绝对导入。(默认值:0)

返回值:返回导入的顶层模块对象(而非 fromlist 中的属性)。

💥 异常

▶ 示例

编辑下方代码,点击运行,在输出面板查看结果:

运行结果:

4.0
⚠️ 警告 动态加载不可信模块名有安全风险;日常请用 import。
更多实战案例即将上线,敬请期待。

❓ 常见问题

Q为什么不直接调 __import__() 而是用 import 语句?
Aimport 语句会处理名字绑定、fromlist 语义等细节;__import__() 只是底层实现函数,日常导入用 import 即可。
Q__import__('math') 返回什么?
A返回 math 模块对象。注意它返回的是顶层模块:import a.b 时 __import__ 返回的是 a 而不是 b。
Q想动态导入模块用什么?
A优先用 importlib.import_module(name),它返回指定的模块而非顶层模块,语义比 __import__ 清晰。
Q动态导入不可信模块名有风险吗?
A有,可能加载并执行任意代码;模块名来自用户输入时必须严格校验白名单。
Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏