Skip to content

一句话解释

包(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 标准库本身就是一堆包:emailhttpjsonurllib 都是包。第三方包用 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 标识它是包。

工作原理

  1. 创建一个文件夹,里面放多个 .py 模块
  2. 加一个 __init__.py(可空)标识这是包
  3. from 包名 import 模块名from 包名.模块名 import 名字 导入
  4. 包可以嵌套子包,形成层级组织

常见混淆

  • 容易混淆的对象: 模块

    关键区别: 模块是单个 .py 文件,包是含多个模块的文件夹(带 __init__.py)。包是模块的集合,规模更大。

相关术语

相关资源

相关课程

学习基础知识

通过结构化课程深入理解这个主题。

查看课程

解读错误信息

用大白话解释常见错误——什么意思、为什么发生、如何修复。

查看错误

← 返回术语表