Python 中的模块和包
在 Python 中,模块(Module) 和 包(Package) 是组织和管理代码的重要工具,它们用于提高代码的可重用性和可维护性。
1. 什么是模块(Module)?
模块(Module) 就是一个 Python 文件,扩展名为 .py,其中包含函数、类和变量,可以被其他 Python 代码导入和使用。
模块的创建
任何 .py 文件都是一个模块。例如,创建一个 math_utils.py 模块:
# math_utils.py
def add(a, b):
return a + b
def multiply(a, b):
return a * b
导入模块
在另一个 Python 文件中使用 import 语句导入模块:
import math_utils
print(math_utils.add(2, 3)) # 输出 5
print(math_utils.multiply(4, 5)) # 输出 20
模块的不同导入方式
- 直接导入整个模块
import math_utils print(math_utils.add(2, 3)) - 导入模块中特定的函数
from math_utils import add print(add(2, 3)) # 不需要 math_utils.add - 导入所有内容(不推荐)
from math_utils import * - 给模块起别名
import math_utils as mu print(mu.add(2, 3))
2. 什么是包(Package)?
包(Package) 是一个包含多个模块的文件夹,通过 __init__.py 让 Python 识别它是一个包。
包的结构
my_package/ # 这是一个包
│── __init__.py # 使 Python 识别该目录为包
│── math_utils.py # 一个模块
│── string_utils.py # 另一个模块
示例
- math_utils.py
def add(a, b): return a + b - string_utils.py
def to_upper(s): return s.upper() __init__.py(可以为空,也可以包含包的初始化代码)from .math_utils import add from .string_utils import to_upper
导入包中的模块
import my_package.math_utils
print(my_package.math_utils.add(2, 3)) # 输出 5
使用 from ... import ... 语法
from my_package import math_utils
print(math_utils.add(2, 3)) # 输出 5
导入 __init__.py 中的内容
from my_package import add, to_upper
print(add(2, 3)) # 输出 5
print(to_upper("hi")) # 输出 HI
3. 模块 vs. 包
| 对比项 | 模块(Module) | 包(Package) |
|---|---|---|
| 定义 | 单个 .py 文件 | 一个包含 __init__.py 的文件夹 |
| 作用 | 组织函数、类等 | 组织多个相关模块 |
| 导入方式 | import module_name | import package_name.module_name |
4. 标准库中的模块
Python 自带许多模块,比如:
math(数学计算)os(操作系统接口)sys(系统参数和函数)datetime(日期和时间)
示例:
import math
print(math.sqrt(16)) # 输出 4.0
总结
- 模块(Module) 是
.py文件,包含 Python 代码。 - 包(Package) 是一个包含多个模块的文件夹,必须包含
__init__.py文件。 - 模块和包 提高了代码的组织性、可维护性和可重用性。
🚀 使用模块和包能让 Python 项目结构更加清晰!

3033

被折叠的 条评论
为什么被折叠?



