【python】抽象基类 from abc import ABC, abstractmethod
abc模块作用
Python本身不提供抽象类和接口机制,要想实现抽象类,可以借助abc模块。ABC是Abstract Base Class的缩写。
假设我们定义一些抽象方法,然后子类继承的时候必须要重写这些方法。出于这个目标,我们就要用到abc这个包。@abstractmethod
表示这个方法是一个抽象方法,子类必须重写。
同时,由于有性质:抽象类是用来继承的,而不是用来实例化的。此时,如果我们实例化animal,将报错
from abc import ABC, abstractmethod class animal(ABC): @abstractmethod def speak(self): pass
如果实现一个子类Cat,子类必须重写speak方法
class Cat(animal): def speak(self): pass def other(self): pass