大家好,我是正在实战各种 AI 项目的程序员晚枫。
优先使用组合而非继承,但继承也有其用武之地。
🧬 MRO 方法解析顺序
多重继承
1 | class A: |
查看 MRO
1 | # 方法 1 |
🔧 Mixin 模式
什么是 Mixin?
Mixin 是一种特殊的类,用于提供可选的功能,而不是表示”是一个”的关系。
实现示例
1 | class JSONSerializableMixin: |
⚖️ 继承 vs 组合
何时使用继承
- 确实是”is-a”关系
- 需要多态
- 框架要求
何时使用组合
- “has-a”关系
- 需要灵活性
- 避免紧耦合
1 | # 继承(不推荐) |
🎯 本讲总结
MRO:方法解析顺序,C3 算法。
Mixin 模式:提供可选功能的类。
继承 vs 组合:优先使用组合。
📚 推荐教材
《Python 编程从入门到实践(第 3 版)》 | 《流畅的 Python(第 2 版)》 | 《CPython 设计与实现》
学习路线: 零基础 → 《从入门到实践》 → 《流畅的 Python》 → 本门课程 → 《CPython 设计与实现》
🔗 课程导航
💬 联系我
| 平台 | 账号/链接 |
|---|---|
| 微信 | 扫码加好友 |
| B 站 | Python 自动化办公社区 |
主营业务:AI 编程培训、企业内训、技术咨询