大家好,我是正在实战各种 AI 项目的程序员晚枫。
Python 的抽象不是强制,而是约定。理解 ABC 和 Protocol,写出更灵活的代码。
🎯 抽象基类 ABC
基础用法
1 | from abc import ABC, abstractmethod |
何时使用 ABC
- 需要强制子类实现某些方法
- 需要运行时类型检查
- 框架开发
📋 Protocol 类型提示
结构子类型
1 | from typing import Protocol |
Protocol vs ABC
| 特性 | ABC | Protocol |
|---|---|---|
| 检查时机 | 运行时 | 静态类型检查 |
| 强制实现 | 是 | 否 |
| 灵活性 | 低 | 高 |
🎯 本讲总结
抽象基类:强制子类实现某些方法。
Protocol:结构子类型,静态类型检查。
ABC vs Protocol:运行时 vs 静态检查。
📚 推荐教材
《Python 编程从入门到实践(第 3 版)》 | 《流畅的 Python(第 2 版)》 | 《CPython 设计与实现》
学习路线: 零基础 → 《从入门到实践》 → 《流畅的 Python》 → 本门课程 → 《CPython 设计与实现》
🔗 课程导航
💬 联系我
| 平台 | 账号/链接 |
|---|---|
| 微信 | 扫码加好友 |
| B 站 | Python 自动化办公社区 |
主营业务:AI 编程培训、企业内训、技术咨询