标签:方法 继承 super bsp 顺序 技术 图片 http info
# 多继承 # 多继承中,我们子类中的对象调用一个方法,默认是就近原则,找的顺序是什么? # 新式类中的继承顺序 # 左右为广度,上线为深度,广度优先算法 # 经典类中的继承顺序 # 深度优先 # python2.7 新式类与经典类共存,新式类要继承object # python3 只有新式类,默认继承object # 经典类和新式类还有一个区别 mro方法只在新式类中有, super只在python3中存在 # mro可以得到继承顺序 # super的本质:不是直接单纯的找父类,而是根据调用者的节点位置的广度顺序来找的 # 钻石继承 class A: def func(self): print(‘A‘) class B(A): #pass def func(self):print(‘B‘) class C(A): def func(self): print(‘C‘) class D(B, C): #pass def func(self):print(‘D‘) d = D() d.func() print(D.mro()) # 使用此方法可以得到D 的继承顺序 [<class ‘__main__.D‘>, <class ‘__main__.B‘>, <class ‘__main__.C‘>, <class ‘__main__.A‘>, <class ‘object‘>]
1.钻石继承的顺序(新式类中)
2.小乌龟的继承顺序
3.关于super在新式类中多继承时的关系
标签:方法 继承 super bsp 顺序 技术 图片 http info
原文地址:https://www.cnblogs.com/whylinux/p/9736950.html