Python 包:结构、导入与最佳实践
Python 包
学习如何使用 Python 包组织不断增长的代码库,以及如何高效导入自定义或第三方模块。
视频:Python 包——组织你的代码
什么是包?
正如我们将磁盘上的文件归类到文件夹以保持清晰,Python 使用包来组织相关模块。包本质上是一个包含 __init__.py 文件的目录——这会告诉 Python 将该文件夹视为一个命名空间。
随着项目扩大,将相似模块放在同一个包中能让项目保持可控且自文档化。包还可以包含子包,这与目录嵌套的方式一致。
例如,一个游戏项目的结构可能如下:

从包导入模块
模块通过点(.)表示法导入。要从 Game/Level 包导入 start.py,使用:
import Game.Level.start
如果 start.py 定义了函数 select_difficulty(),则通过完整命名空间调用:
Game.Level.start.select_difficulty(2)
为减少冗长,可将模块导入本地命名空间:
from Game.Level import start
现在可直接调用:
start.select_difficulty(2)
甚至可直接导入函数:
from Game.Level.start import select_difficulty
然后直接调用:
select_difficulty(2)
虽然简洁,但函数级导入若不同模块暴露同名符号可能导致命名冲突。使用完整包路径能保持命名空间显式且更安全。
Python 通过搜索 sys.path 中列出的目录来解析包导入,这与常规模块相同。
Python
- 精通Python数据类型:实战指南
- 精通Python运算符:全面指南
- 精通Python Pass语句:实战指南
- 精通Python函数参数:位置、关键字与默认参数
- 精通 Python 字典:创建、操作与进阶技巧
- 精通 Python 迭代器:工作原理与自定义构建
- Python 闭包详解:嵌套函数如何捕获变量
- 精通 Python datetime:日期、时间与时区实战指南
- 精通 Python time.sleep():最佳实践、多线程与实战案例
- Python 语言概览:高级、可读、交互式与面向对象
- Python 数字类型详解:不可变数值数据的操作与数学函数
- Python 字符串完全指南:创建、访问、格式化与内置方法大全