python中类的继承规则

python中类的继承规则

在学习python中的继承规则之前,首先要知道python中类的划分。
只要继承object类的就是新式类,不继承object类的都是经典类。
在python3中,所有的类都继承object类,都是新式类。
在python2中:
class A:pass 经典类
class B(object):pass 新式类
在python3中:
class A:pass 新式类
class B():pass 新式类
经典类的多继承采用深度优先继承。
新式类的继承采用广度优先继承。
在新式类中,可以试用类名.mro()查看继承的顺序。

一、简单继承

class A():def run(self):print("A类 执行")class B(A):passclass C(A):passclass D(B,C):passprint(D.mro())  #DBCA

二、复杂继承

class A():def run(self):print("A类 执行")class B(A):passclass C(B):passclass D(C):passclass E(B):passclass F(D,E):passprint(F.mro())  #FDCEBA

三、复杂类多继承

class A():def run(self):print("A类 执行")class B(A):passclass C(A):passclass D(B):passclass E(C):passclass F(D,E):passprint(F.mro())  #FDCEBA

C3算法计算继承顺序:
F(D,E)=mergo(D(B),E©)
=[F] +[DBAO] +[ECAO]
FDB = [AO]+[ECAO]
FDBEC = [AO]+[AO]
FDBECA = [O]
FDBECAO

四、案例练习计算继承顺序

class A():def run(self):print("A类 执行")class B(A):passclass C():passclass D(B):passclass E(C):passclass F(D,E):passprint(F.mro())"""
F+DBAO+ECO
FDBAECO
"""

本文链接:https://my.lmcjl.com/post/5521.html

展开阅读全文

4 评论

留下您的评论.