Skip to main content
 首页 » 编程设计

python之为什么选择 sys.modules 作为字典

2025年05月04日16pander-it

当 Python 想要导入一个模块时,它首先会在 sys.modules 中查找。但是由于字典的键值对没有固定的顺序,您如何确定 sys.modules 中两个同名模块中的哪一个将首先导入?

请您参考如下方法:

因为它是一个映射,sys.modules 中不能没有相同名称的模块。

这就是重点。如果使用语句 import foo 并且 sys.modules['foo'] 存在,则返回该模块。不需要文件访问,也不需要运行该模块的顶级代码。

如果 foo 不存在,则 sys.path 确定首先在哪里找到 foo。该值是一个列表,因此它具有顺序,并且根据该顺序搜索 foo 模块。