抽象基类特点
1.不能够实例化2.在这个基础的类中设定一些抽象的方法,所有继承这个抽象基类的类必须覆盖这个抽象基类里面的方法
思考
既然python中有鸭子类型,为什么还要使用抽象基类?
一是我们在某些情况下希望判定某个对象的类型:from collections.abc import Sizedclass Company: def __init__(self, empo): self.empo = empo def __len__(self): return len(self.empo)com = Company([1,3,4])hasAttr(com,'__len__') // true 如果没有抽象基类,就必须用hasAttr这个方法print(isinstance(com, Sized)) // true 有了抽象基类之后,可以直接用isinstance判断
二是我们要强制某个子类必须实现某些方法