这是一个从 0 到 1 学习 Python 面向对象编程与软件工程实践的学习仓库。内容覆盖面向对象基础、进阶语法、常见数据结构与算法、设计模式、软件测试、OOA/UML、Git 版本控制和小型综合项目。每个章节都尽量保持三个目标:概念讲清楚、代码能运行、例子能迁移到真实项目里。
OOP/
├── oop_basics/ # 面向对象基础:类、对象、封装、继承、多态、组合等
├── advanced_oop/ # 进阶主题:dataclass、协议、描述符、装饰器、mixin 等
├── data_structures/ # 用 OOP 实现常见数据结构
├── algorithms/ # 搜索、排序、递归、动态规划、图算法
├── design_patterns/ # 创建型、结构型、行为型设计模式
├── software_engineering/ # 软件测试、OOA/UML、Git 版本控制
├── projects/ # 综合练习项目
├── scripts/ # 辅助脚本
└── tests/ # 单元测试
本仓库只使用 Python 标准库,不需要额外安装依赖。建议使用 Python 3.10 或更高版本。
cd /Users/jaxson/OOP
python3 scripts/run_examples.py
python3 -m unittest discover -s tests如果只想运行某个文件,可以直接执行:
python3 oop_basics/01_classes_and_objects.py
python3 design_patterns/behavioral/strategy.py- 先看
oop_basics/,建立类、对象、方法、属性、封装、继承、多态的直觉。 - 再看
advanced_oop/,理解 Python 中更“动态”的对象模型能力。 - 用
data_structures/和algorithms/把 OOP 用在可复用的数据建模与算法实现上。 - 通过
design_patterns/学习常见协作结构,重点理解“为什么这么组织代码”。 - 学习
software_engineering/,把 OOP 放进测试、建模和版本控制流程里。 - 最后看
projects/,把多个知识点组合成接近业务场景的小程序。
- 类与对象:状态、行为、实例属性、类属性
- 封装:私有约定、属性校验、property
- 继承与多态:抽象基类、接口式设计、方法重写
- 组合优先:用对象协作代替过深继承
- Python 数据模型:魔术方法、迭代协议、上下文管理器
- 类型建模:dataclass、Protocol、泛型
- 设计模式:Factory、Builder、Adapter、Decorator、Strategy、Observer、Command
- 数据结构:链表、栈、队列、二叉搜索树、图
- 算法:二分搜索、排序、动态规划、BFS、DFS、Dijkstra
- 软件工程:测试目的、测试层级、OOA、UML 图、Git 分支与协作
- 示例优先使用标准库,保持文件可独立运行。
- 每个示例文件都有
if __name__ == "__main__"演示入口。 - 重点示例配套单元测试,方便验证行为。
- 中文 README 讲思路,Python 文件保留简洁英文命名。
读每个章节时,不要只看代码。建议按下面的节奏练:
- 先运行示例,观察输出。
- 改一个输入或新增一个类,看看行为如何变化。
- 给已有类补一个方法,并写一个小测试。
- 尝试把示例里的类迁移到一个新场景,例如图书、订单、任务、游戏角色等。
这个仓库不是为了背概念,而是为了把“对象如何协作”这件事练到手上。