当Python想要导入模块时,它首先会查看sys.modules
。但由于字典的键值对不是固定的顺序,你怎么能确定sys.modules
中哪两个同名的模块将被先导入?
答案 0 :(得分:7)
由于它是一个映射,因此sys.modules
中
这就是重点。如果使用语句import foo
和sys.modules['foo']
,则返回该模块。无需文件访问,无需运行该模块的顶级代码。
如果foo
不存在,则sys.path
会确定首先找到foo
的位置。该值是一个列表,因此它具有顺序,并且foo
模块的搜索是根据该顺序进行的。