官方描述:不同对象可以响应(调用)同一个方法,产生不同的结果
(对猫,狗,发出吃的命令时,猫去吃鱼,狗去吃骨头)
好处:提高程序的扩展性
具体的:父类建立一套规范,无需实现内部的方法,子类按照这套规范实现各自的功能
import abc class Animal(metaclass=abc.ABCMeta): @abc.abstractmethod def talk(self): 父类定义的规范,子类必须拥有 pass def sleep(self): pass 没有@abc.abstractmethod的可以不遵循,一般需要遵循 class Person(Animal): def talk(self): print('hello') class Cat(Animal): def talk(self): print('miao') p1 = Person() p1.talk()
鸭子类型
python不推荐强制限制语法,推荐鸭子类型,(不使用abc强制要求必须有哪个函数,自己遵循即可)