【发布时间】:2020-10-13 02:26:18
【问题描述】:
当我导入模块时,这个嵌套场景可以正常工作。但是当我尝试导入包时,我得到了不一致的结果。这是一个非常简单的案例:
我当前文件夹的内容:
mypackages <directory>
__init__.py
one.py
two.py
three.py
这是脚本:
__init__.py :
import one
one.py :
import two
two.py :
import three
我希望我应该能够以这种方式访问两个和三个:
import mypackages
mypackages.one.two
mypackages.one.two.three
或者换句话说,逻辑级别应该是这样的:
one
two
three
但是当我执行 import mypackages 时,我将所有模块都暴露在同一级别:
>>> import mypackages
>>> print dir(mypackages)
['__builtins__', '__doc__', '__file__', '__name__', '__package__',
'__path__', 'one', 'three', 'two']
它应该只显示 one 模块,对吗?
我很困惑为什么它显示所有 one , two 和 three 这意味着它们处于同一级别(我可以直接使用 mypackages.two 和 mypackages.three ) .
有人解释一下吗?
【问题讨论】:
标签: python import module nested package