1

当 Python 想要导入一个模块时,它首先会在sys.modules. 但是由于字典的键值对不是按固定顺序排列的,你怎么能确定两个同名模块中的哪一个sys.modules会首先被导入呢?

4

1 回答 1

7

由于它是一个映射,因此sys.modules.

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

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

于 2013-04-15T11:22:27.047 回答