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第十章(模块和包)的主要内容,如果未能解决你的问题,请参考以下文章

python全栈开发第十二篇Python的模块和包

第十章 读书笔记

第十章心得体会

第十章

第十章-内建模块

第十四天—模块和包