Keep your place in this quest

Log in or sign up for free to subscribe, follow lesson progress, and access more learning content.

现在你已经知道了模块是什么,让我们更进一步,来了解 Python 中的包(packages)

是一种将相关模块组织在一个有序文件夹中的方式。
如果把模块比作单个工具,那么包就像一个包含多个整齐排列工具的工具箱。


什么是包?

包实际上是一个目录,包含:

  • 一个 __init__.py 文件(即使是空的也必须有)
  • 一个或多个模块文件(.py
  • 可选的子包(包含自己 __init__.py 的文件夹)

当包被导入时,__init__.py 文件会被执行。
它可以用来设置默认导入、定义变量或运行初始化代码。

包的示例结构

这是一个名为 mypackage 的简单包:

mypackage/
__init__.py
module1.py
module2.py

使用 __init__.py 设置默认导入

__init__.py 文件中,你可以选择当别人导入包时,哪些部分可以直接使用。

示例 — 在 mypackage/__init__.py 中:

from .module1 import my_function
from .module2 import another_function

这样,当你导入包时,就可以直接使用这些函数,而无需单独导入每个模块。

导入并使用包

示例 — 在另一个 Python 文件中:

import mypackage

mypackage.my_function()
mypackage.another_function()

这里:

  • import mypackage 会执行 __init__.py 中的代码。
  • 由于在 __init__.py 导入了模块中的函数,因此这些函数可以直接使用。
提示:如果你喜欢,也可以直接从包中导入特定模块:
from mypackage import module1

为什么使用包?

包可以帮助你: • 组织 代码,划分逻辑部分。 • 重用 相关模块于不同项目中。 • 扩展 程序,使其应对更复杂的场景。

无论你是在开发大型应用,还是只是想让代码更整洁,包都是构建干净且易维护 Python 项目的基石。


接下来,我们将学习更多关于导入模块和包的不同技巧,以及何时选择使用它们。