在 Python 中,import 是我们最常用的语法之一。它可以让我们调用各种模块,比如:
import os
但import 其实是 Python 的一块“语法糖”——它只是一个简化写法,背后真正执行的是一个叫做__import__()
的内置函数。
import 到底做了什么?
Python 中的 import 实际是语法糖(Syntactic Sugar),它简化了模块加载流程,实质是调用了内置函数:
__import__('')
import(os)
#实际上等价于:
__import__('os')
更深入地说,Python 在执行 import 语句时,会先查看 sys.modules 中是否已缓存该模块:
如果已经存在,直接复用;
如果不存在,才会调用 __import__() 函数加载。
当你写下 import os,Python 会隐式执行:
- 检查模块 os 是否已存在于 sys.modules 缓存中;
- 如果存在,则直接复用,不再重新加载;
- 如果不存在,才会调用 __import__('os') 加载模块。
所以在某些沙箱环境中,即使限制了 import 关键词,如果 os 已存在于解释器上下文,调用 __import__('os')
依旧能成功导入os模块。