python类的多继承关系_Python类(三)多继承的区别

多继承的有两个方式,一个是广度优先,一个是深度优先

Python2中经典类按深度优先,新式类按广度优先

Python3中经典类和新式类都按广度优先

# -*- coding:utf-8 -*-

__author__ = "MuT6 Sch01aR"

class A():

def __init__(self):

print('A')

class B(A):

def __init__(self):

print('B')

class C(A):

def __init__(self):

print('C')

class D(B,C):

pass

D()

D继承了B,C

B,C分别继承了A

第一级为A,第二级为B和C(左边的优先),第三级为D

首先在Python3环境下运行,看看结果

ab1389483b02847f1712b790ac5e8360.png

首先继承了B,把B中内容改为pass,运行

fd27bef00446c1285d1f051db6ad0204.png

D继承了C,再把C中内容改为pass,运行

150759f4a5ff07fa1925a7de4c29d587.png

D最后继承了A

可见广度优先的顺序为:B->C->A,即先同一级,再上一级

再在Python2环境中运行,看看是什么情况

10032184ccb3540ef6a7ea141b02879a.png

首先是B,把B中内容改为pass,运行

a919bd9bf0d5e2e06d7dcc618532f153.png

D继承了A,把A中内容改为pass,运行

f9ad63b9895cf397ae945b9384510736.png

D最后继承了C

深度优先的继承顺序为:B->A->C,即先上一级,再同一级

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值