【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

 

posted @ 2022-12-28 14:53  AliceYing  阅读(322)  评论(0编辑  收藏  举报