PythonCookbook第十章(模块和包)
Posted 区块链散户一枚
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PythonCookbook第十章(模块和包)相关的知识,希望对你有一定的参考价值。
前面简单写了一些关于模块与包的知识,最近马上要写搬砖脚本,里面大小的模块与包应该用到不少。系统的学一遍准备。
10.1把模块按层次结构组成包
问题:
我们想把代码按照一定的层次结构组成包
解决方案:
创建一个包很简单,只要文件夹里面有__init__.py就可以了。创建有层次的包只要每个目录都定义了__init__.py就可以了。
└── graphics ├── __init__.py ├── formats │ ├── __init__.py │ ├── jpg.py │ └── pny.py └── primitive ├── __init__.py ├── fill.py ├── line.py └── text.py
讨论:
上面的这样的文件结构,当一个脚本写下import graphics,文件graphics/__init__.py会被导入并形成graphics命名空间的内容。(翻译的很难理解)。
当执行import graphics.formats.jpg 文件graphics/__init__.py和文件graphics/formats/__init__.py都会在导入文件graphics.formats.jpg之前优先导入
你可以理解在导入文件之前的包文件内的__init__都会优先被导入,前提是后面不能有as 语句
大多数情况下__init__.py文件留空就可以了。但是在某些特定的情况下__init__.py需要含有代码。
比如可以用__init__.py来自动加载子模块
# graphics/formats/__init__.py文件里面写这个
from . import jpg
from . import pny
实际测试了使用了,效果很一般。
以上是关于PythonCookbook第十章(模块和包)的主要内容,如果未能解决你的问题,请参考以下文章