嵌套包必须始终位于Python的嵌套文件夹中吗?

时间:2018-12-30 00:04:12

标签: python

有人可以举一个例子,说明您何时使用Python编写以下内容

import p3 from p1.p2

p1p2不是文件夹,而是文件。我正在尝试通过(令人困惑的?)文档和(更少)示例来理解稀疏文档化的导入系统。

1 个答案:

答案 0 :(得分:0)

包装和导入在Python docs中有详细记录。

包可以构成为不一定反映目录结构的层次结构。在您的情况下,软件包p1正在导入p2,而后者又将导入p3。所有这些软件包都可以在同一目录中。

# p1.py
import p2 # p2 is now accessible within this package

# p2.py
import p3 # p3 is now accessible within this package

# p3.py
some_variable = 'ding!'

有了这个导入层次结构,我可以导入p1并像这样遍历该层次结构

import p1
print p1.p2.p3.some_variable
# ding!

或者我可以从层次结构中导入子包

from p1 import p2
# or
from p1.p2 import p3
print p3.some_variable

目录结构 可用于更简洁地组织软件包。通过将目录添加__init__.py文件,可以将目录转换为可导入模块。您可以在这些init文件中执行类似的导入策略。