面向对象-多继承

#钻石继承
# python两种类
# 经典类 py3已经灭绝了 在python2里还存在,在py2中只要程序员不主动继承object,这个类就是经典类 —— 深度优先
# 新式类 python3所有的类都是新式类,所有的新式类都继承自object —— 在多继承中遵循:广度优先算法
# 钻石继承问题
# python3

# class A:
# pass
# def f(self):
# print('in A')
#
# class B(A):
# pass
# def f(self):
# print('in B')
#
# class C(A):
# pass
# def f(self):
# print('in C')
#
#
# class D(B):
# pass
# # def f(self):
# # print('in D')
#
# class E(C):
# pass
# def f(self):
# print('in E')
# class F(D,E):
# pass
# def f(self):
# print('in F')
# d = D()
# d.f()
# python会计算出一个方法解析顺序(MRO)列表,这个MRO列表就是一个简单的所有基类的线性顺序列表
# print(F.mro())

# super和找父类这件事是两回事
# 在单继承中 super就是找父类
# 在多级承中 super的轨迹 是根据整个模型的起始点而展开的一个广度优先顺序 遵循mro规则

class A:
def f(self):
print('in A')

class B(A):
def f(self):
print('in B')
super().f()

class C(A):
pass
def f(self):
print('in C')
super().f()

class D(B,C):
def f(self):
print('in D')
super().f()

d = D()
d.f()

转载于:https://www.cnblogs.com/lixiaoxuan/articles/9051671.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值