模块是Python顶层代码组织单元,一个.py文件即一个模块,可包含零个或多个类;类是模块内封装数据和行为的逻辑单元,必须隶属于某模块,不能独立存在。

Python 中的类和模块不是同一层级的概念,模块是组织代码的顶层单位,类是模块内部用来封装数据和行为的结构。理解它们的关系,关键在于“容器层级”:模块包含类(也可能不包含),类不能直接包含模块,但可以导入并使用其他模块。
模块是代码的物理组织单元
一个 .py 文件就是一个模块,它天然具备命名空间,可导出变量、函数、类等。比如 utils.py 是一个模块,里面可以定义多个类(如 DataProcessor、ConfigLoader),也可以只定义函数或常量。
- 模块名即文件名(不含 .py),导入时用
import utils或from utils import DataProcessor - 每个模块有独立的全局作用域,避免命名冲突
- 模块可嵌套:包(package)是含
__init__.py的目录,本质是一组相关模块的集合
类是模块内的逻辑抽象单元
类用于建模实体或概念,把属性和方法封装在一起。它必须定义在某个模块中(包括交互式环境里的临时模块 ),不能脱离模块单独存在。
- 一个模块可定义零个、一个或多个类,无强制数量限制
- 类可以访问所在模块的全局变量,也可导入其他模块来扩展能力
- 类本身不是命名空间容器(不像模块),但其实例和类属性构成各自的命名空间
典型层级结构示例
以一个小型数据处理项目为例:
eSiteGroup站群管理系统是基于eFramework低代码开发平台构建,是一款高度灵活、可扩展的智能化站群管理解决方案,全面支持SQL Server、SQLite、MySQL、Oracle等主流数据库,适配企业级高并发、轻量级本地化、云端分布式等多种部署场景。通过可视化建模与模块化设计,系统可实现多站点的快速搭建、跨平台协同管理及数据智能分析,满足政府、企业、教育机构等组织对多站点统一管控的
立即学习“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可能不定义任何类,只组合使用各模块中的类与函数
设计建议:按职责分离模块,按实体建模类
好的层级设计让代码易定位、易复用、易测试。
- 一个模块聚焦单一职责(如“日期处理”“HTTP 请求封装”),避免堆砌大量无关类
- 若某类变得复杂(超 300 行 / 职责发散),考虑拆分为多个类,并放入新模块或子包
- 避免“大而全”的模块(如
all_in_one.py),也避免“一模块一类”的教条 —— 关联紧密的小类可共存于同一模块 - 跨模块使用类时,优先通过
from module import Class显式导入,减少命名污染









