首先需要了解的是一个基类(父类),abc.ABCMeta。这个是用于实现抽象类的一个基础类
抽象方法的使用,在相应的方法之前一行加上@abstractmethod之后,从新的一行开始定义相应的方法。实现的方法就是一个抽象方法。子类继承之后,如果需要用到的这个方法则必须用新的方法将其实现。
示例代码
import abc
from abc import *
class SClass(metaclass=abc.ABCMeta):
@abstractmethod
def my_print(self):
pass
class CClass(SClass):
pass
cc = CClass() #会报错,原因是如果想要能够正确进行实例化就需要对相应的抽象接口进行实现。
<---------------------------------------------------------------->
# 改造后
import abc
from abc import *
class SClass(metaclass=abc.ABCMeta):
@abstractmethod
def my_print(self):
pass
class CClass(SClass):
def my_print(self):
print("my childmethod")
cc = CClass() # 不会报错
cc.my_print() # 打印 my childmethod