包
一句话解释
包(package)是一个含多个模块(`.py` 文件)的目录,带 `__init__.py` 标识,用来组织大型项目。
用大白话说
包(package)是比模块更高一级的组织单位:一个文件夹里放多个 .py 模块,再加一个 __init__.py 文件,这个文件夹就成了一个包。
my_package/
__init__.py
math_tools.py
string_tools.py
io_tools.py
# 从包里导入某个模块
from my_package import math_tools
# 或直接导入某个函数
from my_package.math_tools import add
__init__.py 可以是空文件,它的作用是告诉 Python“这个文件夹是个包”。也可以在里面写一些初始化代码,让 import 包名 时自动执行。
包可以嵌套——包里再含子包,形成层级结构。Python 标准库本身就是一堆包:email、http、json、urllib 都是包。第三方包用 pip install 安装,装完就能 import。
示例
python
# 假设目录结构:
# my_package/__init__.py
# my_package/math_tools.py → def add(a,b): return a+b
from my_package import math_tools
print(math_tools.add(2, 3)) # 5
from my_package.math_tools import add
print(add(2, 3)) # 5包是含多个模块的目录。用 from 包 import 模块 或 from 包.模块 import 函数 导入。__init__.py 标识它是包。
工作原理
- 创建一个文件夹,里面放多个
.py模块 - 加一个
__init__.py(可空)标识这是包 - 用
from 包名 import 模块名或from 包名.模块名 import 名字导入 - 包可以嵌套子包,形成层级组织
常见混淆
容易混淆的对象: 模块
关键区别: 模块是单个 .py 文件,包是含多个模块的文件夹(带 __init__.py)。包是模块的集合,规模更大。
相关术语
相关资源
相关课程
- Python 概览
用包组织大型 Python 项目
学习基础知识
通过结构化课程深入理解这个主题。
解读错误信息
用大白话解释常见错误——什么意思、为什么发生、如何修复。