1.9 KiB
1.9 KiB
python3小白课:包是什么
[!question]
python中除了模块,还有一中叫做
包的叫法,那么它究竟是什么呢?
事实上,我们可以在一个模块中包含可供外界调用的各种成员,但当里面的成员非常多的时候,模块的维护会变得困难。这时候包(package)就出现了,它可以把一个冗长模块中的成员拆成多个py文件模块,然后统一放到一个文件夹里,文件夹的名字就是包名。后续在使用时,可以像模块几乎一致的语法来使用包,如导入模块时,导入文件夹名作为模块名即可。
从这个角度看,包其实也是一种模块,只不过它比单文件更加好维护和扩展。包是一个文件夹,而且python不是会轻易认任何一个文件夹为包的,我们在定义这个文件夹为包的时候,需要在这个文件夹的根目录创建一个文件__init__.py。这是一个初始化包的文件,它可以不写任何内容,python遇到这种文件夹的时候就知道它是一个包了。
导入包跟导入模块是一样的写法,python寻找包的方式也跟我们讲过的导入模块详解中的内容一致,这里就不赘述了。
在编写包代码的时候,可以仅将模块所有代码写在__init__.py这个文件下。此时导入包时,会自动执行该文件中的所有代码。
另一种方式是在文件夹中将你的模块代码拆分成多个py文件,每个文件有自己的名字,它们就是包中的子模块,__init__.py这个文件完全可以留空。
给包编写帮助文档也很简单,使用多行字符串的方式在包中的__init__.py文件或其他py文件最前面写帮助文档即可。
关于定义包、导入包的知识,我们将在后面的课程中详细讲解。
单词释义
| 单词 | 释义 |
|---|---|
| package | 包 |
| init | 初始化 |