小编典典

不同目录下的不同导入结果

python

我有一个包MyPak和一个模块MyMod。这些文件的组织方式如下:

somedir / MyPak / MyMod.py

在MyMod.py中,只有一个名称也为MyMod的类

在somedir / MyPak目录中,如果我执行导入操作:

import MyMod

我将MyMod作为模块导入。

但是在somedir /目录中,如果我这样做

from MyPak import MyMod

我将MyMod作为类而不是模块导入。为什么会这样呢?


阅读 216

收藏
2020-12-20

共1个答案

小编典典

此行为表明您有一个文件:

somedir/MyPak/__init__.py

其中,您执行以下操作:

from MyMod import *

当您import MyPak从中导入时,__init__.py同样地,当您from MyPak import something尝试从包的名称空间中提取时,它会在其中__init__.py

因为您是从MyModinside导入所有内容的__init__.py,所以现在该类在MyPak包中是本地的,并屏蔽了MyMod.py文件。

2020-12-20