在 Python 中,模块(Module) 和 包(Package) 是组织和管理代码的重要工具,它们用于提高代码的可重用性和可维护性。
模块(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))
包(Package) 是一个包含多个模块的文件夹,通过 __init__.py
让 Python 识别它是一个包。
my_package/ # 这是一个包
│── __init__.py # 使 Python 识别该目录为包
│── math_utils.py # 一个模块
│── string_utils.py # 另一个模块
def add(a, b):
return a + b
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
对比项 | 模块(Module) | 包(Package) |
---|---|---|
定义 | 单个 .py 文件 |
一个包含 __init__.py 的文件夹 |
作用 | 组织函数、类等 | 组织多个相关模块 |
导入方式 | import module_name |
import package_name.module_name |
Python 自带许多模块,比如:
math
(数学计算)os
(操作系统接口)sys
(系统参数和函数)datetime
(日期和时间)示例:
import math
print(math.sqrt(16)) # 输出 4.0
.py
文件,包含 Python 代码。__init__.py
文件。使用模块和包能让 Python 项目结构更加清晰!