三天打鱼,两天晒网,好尴尬
<!--more-->
前言
最近在写一个Python的工具,为了使代码清晰易阅读,我分了若干个模块.模块间是有层次关系的,所以此时有必要引入"包(package)".
通过一个小的Demo展示了如何在包和模块间互相引用
Demo
代码树状图如下:
1234567891011└── relative_import ├── main.py ├── subpackage1 │ ├── __init__.py │ ├── module_x.py │ └── module_y.py └── subpackage2 ├── __init__.py └── module_z.py3 directories, 6 files
其中main.py是入口,引用关系如下:
123main-->module_xmodule_x-->module_ymodule_y-->module_z
我们囊括如下几种情况:
- 引用子目录的模块
- 引用同级模块
- 引用不同目录的模块
包(Package)
包是若干模块的一个集合,一个文件夹变成包的方法就是在其中放入__init__.py
文件.在导入包的时候,该文件将会首先执行文件.
所以,在我们的代码中,subpackage1和subpackage2是两个包.
模块(module)
模块,简而言之就是一个文件.文件名除去后缀就是模块名了.
函数和类
在导入后,使用中是不区分函数和类的.在后面的代码中,我们将会看到.
示例代码
下面是我写的小例子,满足了我开发中的分类需求. github Demo 在执行了main.py后,将会依次执行module_x,module_y,module_z中的代码.