文章目录 一、鸭子类型和多态 二、抽象基类(abc模块) 1.定义 2.应用场景 判断某个对象的类型 强制某个子类必须实现某些方法 三、两对概念辨析 1.isinstance和type 2.类变量和对象变量 四、MRO算法查找顺序和自省机制 1.MRO算法 (1)Python2.2之前的算法:金典类 (2)Python2.2版本之后,引入了BFS(广度优先搜索) (3)在Python2.3之后,Python采用了C3算法 2.自省机制 五、super函数 思考: 为什么重写了B的构造函数,还要去调用super? super执行顺序是怎样的? 一、鸭子类型和多态 多态的概念是应用于Java和C#这一类强类型语言中,而Python崇尚“鸭子类型”。 动态语言调用实例方法时不检查类型,只要方法存在,参数正确,就可以调用。这就是动态语言的“鸭子类型”,它并不要求严格的继承体系,一个对象只要“看起来像鸭子,走起路来像鸭子”,那它就可以被看做是鸭子。 a = [1,2] b = [3,4] c