什么是包?
要想知道什么是包,得先了解一下模块的概念。
模块是一个包含所有你定义的函数和变量的文件,其后缀名是 .py。模块可以被别的程序引入,以使用该模块中的函数等功能。
知道了模块,那紧接着看看包:
包是一种管理 Python 模块命名空间的形式,采用"点模块名称"。
比如一个模块的名称是 A.B, 那么他表示一个包 A 中的子模块 B 。
就好像使用模块的时候,你不用担心不同模块之间的全局变量相互影响一样,采用点模块名称这种形式也不用担心不同库之间的模块重名的情况。
所以要将一个文件夹里的所有 python 代码作为一个包给其他程序用, 首先在这个文件夹里面创建一个名为 init.py 的空文件。
touch __init__.py
在这个文件夹里的多个 python 文件 , 它们可能会需要对其他同级的 python 模块进行引用。 一般, 只需要在脚本开头 import 一下就可以了。不过, 如果整个文件夹需要作为包给其他程序用, import 的时候就会有一个路径问题, 所以模块内 import 的话需要带上路径,写成
from . import 同级其它模块名
在这个文件夹外部某个程序要引入这个包内的某个模块,需要在那个程序里面写:
from 包名 import 模块名