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 评论