教程 python tutorial

包的结构与使用

包(Package)是 Python 中用于组织模块的目录结构,允许开发者将多个模块组织成逻辑上相关的集合。通过合理使用包,可以提升代码的可维护性与复用性。

什么是包

包是一个带有 __init__.py 文件的目录,其中可以包含多个模块或子包。包的存在使得 Python 支持模块的层级结构。

代码

myproject/
├── main.py
└── mypackage/
├── **init**.py
├── module1.py
└── module2.py

创建包

  1. 创建一个目录作为包名。
  2. 在目录中添加一个空的 __init__.py 文件(在较新版本中不是强制,但仍推荐保留)。
  3. 将相关模块文件放入该目录中。

导入包中的模块

可以通过以下方式导入包内模块:

python
# 完整路径导入
from mypackage import module1
module1.hello()

# 或者导入具体函数
from mypackage.module1 import hello
hello()

__init__.py 的作用

  • 标识该目录为一个包;
  • 可用于初始化包、定义快捷访问的函数或变量;
  • 可以控制 from mypackage import * 时的导入行为。

mypackage/init.py

python
print("mypackage 已被导入")

子包与嵌套包

包可以包含子包,形成多层嵌套结构:

代码
mypackage/
  ├── __init__.py
  └── subpackage/
      ├── __init__.py
      └── utils.py

导入方式:

python
from mypackage.subpackage import utils

相对导入与绝对导入

  • 绝对导入:使用完整路径 from mypackage.module1 import hello
  • 相对导入:在包内部使用 from .module1 import hello(点表示当前目录)

包的发布与使用

自定义包可通过以下方式进行发布与分发:

  1. 使用 setup.py 定义安装信息;
  2. 发布到 PyPI 或通过 pip install . 安装本地包;
  3. 在其他项目中使用 import 引入。

总结

  • 包是 Python 项目组织的重要结构单元;
  • 使用 __init__.py 文件来控制包的行为;
  • 子包支持模块的进一步划分,利于大型项目管理;
  • 理解包的导入方式有助于构建可维护的工程代码。