大家好,我是锋哥。今天分享关于【Python高频面试题:python里面模块和包之间有什么区别?】面试题 。希望对大家有帮助;

Python高频面试题:python里面模块和包之间有什么区别?
在 Python 里,**模块(module)和包(package)**是组织代码的两种层次结构,它们有联系但概念不同。我给你梳理清楚:
1️⃣ 模块(Module)
-
定义 :模块就是一个 Python 文件 (
.py后缀),里面可以包含函数、类、变量,也可以包含可执行代码。 -
作用:
- 组织代码,避免文件过大
- 提供重用性
- 可以被
import导入
-
例子:
# math_utils.py def add(a, b): return a + b PI = 3.1415 -
导入方法:
import math_utils print(math_utils.add(2, 3)) from math_utils import PI print(PI)
2️⃣ 包(Package)
-
定义 :包是一个 包含
__init__.py文件的文件夹,可以包含多个模块和子包。 -
作用:
- 组织模块,使其形成层级结构
- 避免模块命名冲突
- 支持命名空间管理
-
结构示例:
mypackage/ __init__.py math_utils.py string_utils.py subpackage/ __init__.py file_ops.py -
导入方法:
from mypackage import math_utils from mypackage.subpackage import file_ops
3️⃣ 核心区别总结
| 特性 | 模块 | 包 |
|---|---|---|
| 本质 | 一个 .py 文件 |
一个包含 __init__.py 的文件夹 |
| 包含内容 | 函数、类、变量、可执行代码 | 模块或子包 |
| 作用 | 组织单个文件的代码 | 组织模块和子包,形成层级结构 |
| 导入方式 | import module |
import package.module 或 from package import module |
💡 小技巧:
- Python 3.3+ 可以创建 不带
__init__.py的命名空间包 ,但为了兼容性和清晰性,通常还是会加__init__.py。 - 包是模块的"集合",模块是包的"组成单元"。