python - 嵌套包是否总是必须在 Python 的嵌套文件夹中?
问题描述
有人可以举例说明您何时用 Python 编写以下代码
import p3 from p1.p2
p1
,p2
不是文件夹而是文件。我试图通过(令人困惑的?)文档和(更少)示例来理解文档稀少的导入系统。
解决方案
包和导入在 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
文件变成一个可导入的模块。您可以在这些初始化文件中执行类似的导入策略。
推荐阅读
- javascript - 可以让事件处理函数返回一个函数吗?
- mysql - 对 SQL 中的两个单独列使用 Group By 来计算新列
- php - 如果产品类别等于“X”,则 Woocommerce 工作
- javascript - 从本地文件而不是从 vuejs 项目中的 url 路径动态显示图像
- java - 仅当 HashKey RangeKey 对在表中时,DynamoDB 映射器才更新项目
- javascript - 如何准确删除 div onclick
- visual-studio - Visual Studio 扩展包扩展版本控制如何工作?
- reactjs - 使用 react-three-fiber 在 gatsby 站点加载 gltf
- javascript - 调整页面功能,更换设备时,只需重新加载即可
- f#-data - F# 的 FsLab 包中的错误 URL