码迷,mamicode.com
首页 > 编程语言 > 详细

PythonCookbook第十章(模块和包)

时间:2020-03-17 08:13:49      阅读:83      评论:0      收藏:0      [点我收藏+]

标签:空间   大小   解决   内容   文件夹   导入   import   ini   层次结构   

前面简单写了一些关于模块与包的知识,最近马上要写搬砖脚本,里面大小的模块与包应该用到不少。系统的学一遍准备。

 

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第十章(模块和包)

标签:空间   大小   解决   内容   文件夹   导入   import   ini   层次结构   

原文地址:https://www.cnblogs.com/sidianok/p/12508260.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!