首页 > 解决方案 > 嵌套包是否总是必须在 Python 的嵌套文件夹中?

问题描述

有人可以举例说明您何时用 Python 编写以下代码

import p3 from p1.p2

p1,p2不是文件夹而是文件。我试图通过(令人困惑的?)文档和(更少)示例来理解文档稀少的导入系统。

标签: python

解决方案


包和导入在 Python文档中有很好的记录。

包可以按不一定反映目录结构的层次结构组成。在您的情况下,包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文件变成一个可导入的模块。您可以在这些初始化文件中执行类似的导入策略。


推荐阅读