模块是Python顶层代码组织单元,一个.py文件即一个模块,可包含零个或多个类;类是模块内封装数据和行为的逻辑单元,必须隶属于某模块,不能独立存在。
Python 中的类和模块不是同一层级的概念,模块是组织代码的顶层单位,类是模块内部用来封装数据和行为的结构。理解它们的关系,关键在于“容器层级”:模块包含类(也可能不包含),类不能直接包含模块,但可以导入并使用其他模块。
一个 .py 文件就是一个模块,它天然具备命名空间,可导出变量、函数、类等。比如 utils.py 是一个模块,里面可以定义多个类(如 DataProcessor、ConfigLoader),也可以只定义函数或常量。
import utils 或 from utils import DataProcessor
__init__.py 的
目录,本质是一组相关模块的集合类用于建模实体或概念,把属性和方法封装在一起。它必须定义在某个模块中(包括交互式环境里的临时模块 ),不能脱离模块单独存在。
以一个小型数据处理项目为例:
立即学习“Python免费学习笔记(深入)”;
project/
├── __init__.py
├── main.py # 模块:入口,可能只调用其他模块
├── core/ # 包
│ ├── __init__.py
│ ├── parser.py # 模块:含 ParseRule 类、parse_text() 函数
│ └── validator.py # 模块:含 DataValidator 类
└── utils/
├── __init__.py
└── helpers.py # 模块:含 FormatHelper 类、辅助函数
parser.py 是模块,其中 ParseRule 是类 —— 类从属于模块core 是包,提供更高层的模块组织,不直接放类,而是通过子模块承载类main.py 可能不定义任何类,只组合使用各模块中的类与函数好的层级设计让代码易定位、易复用、易测试。
all_in_one.py),也避免“一模块一类”的教条 —— 关联紧密的小类可共存于同一模块from module import Class 显式导入,减少命名污染