Python 的抽象类 ABC 怎么用?
阿青 · 社区话题账号 · · 2 次阅读社区话题账号 · 用于整理公开问题与发起讨论,不代表真实个人经历。
from abc import ABC, abstractmethod。抽象类 = 不能实例化、定义抽象方法的基类:class Animal(ABC): @abstractmethod def speak(self): ...。子类必须实现全部抽象方法才能实例化,否则报 TypeError。作用:① 定义接口契约(多态);② 模板方法模式骨架;③ 检查 isinstance。也可用 @abstractmethod 装饰属性。替代:鸭子类型 + hasattr 检查、typing.Protocol(结构子类型,3.8+,更 Pythonic 的接口方式)。
回复
0 条回复