#coding:utf-8 # python2中指定文件头‘‘‘1、菱形继承 当一个子继承多个父类时,多个父类最终继承了同一个类,称之为菱形继承 2、菱形继承的问题: python2区分经典类与新式类,如果子的继承是一个菱形继承,那么经典类与形式的区别为? 经典类下查找属性:深度优先查找 深度查找:比如A(B,C,D),深度查找就是A沿着B一路查找下去,直到世界尽头(最后一个父类), 然后才会跳到C查找,找到最后再跳到C 新式类下查找属性:广度优先查找 A(B,C,D)沿着A-B 不插着最后一个,直接跳到B,不着最后一个,跳到C,查找到最后。 3.父类又称为基类,超类。非菱形继承查找方式有两种,都是从下往上找 子类 --》 父类--》父类‘‘‘ class G(object): # def test(self): # print(‘from G‘) pass class E(G): # def test(self): # print(‘from E‘) pass class B(E): # def test(self): # print(‘from B‘) pass class F(G): # def test(self): # print(‘from F‘) pass class C(F): # def test(self): # print(‘from C‘) pass class D(G): # def test(self): # print(‘from D‘) pass class A(B,C,D): def test(self): print(‘from A‘) # pass obj=A()print(A.mro()) # 查找顺序(很重要)# [<class ‘__main__.A‘>, <class ‘__main__.B‘>, <class ‘__main__.E‘>, <class ‘__main__.C‘>,# <class ‘__main__.F‘>, <class ‘__main__.D‘>, <class ‘__main__.G‘>, <class ‘object‘>]# obj.test() #A->B->E-C-F-D->G-object
原文地址:https://www.cnblogs.com/Roc-Atlantis/p/9234119.html
时间: 2024-10-07 19:35:53