python3xiaobaike_2020/chapter6/6-4 python3小白课:包是什么.md
2025-04-20 23:22:14 +08:00

30 lines
1.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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