首页 > 编程语言 > 详细

Python类(三)-多继承的区别

时间:2018-01-26 19:19:11      阅读:207      评论:0      收藏:0      [点我收藏+]

多继承的有两个方式,一个是广度优先,一个是深度优先
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环境下运行,看看结果

技术分享图片

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

技术分享图片

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

技术分享图片

D最后继承了A

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

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

技术分享图片

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

技术分享图片

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

技术分享图片

D最后继承了C

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

Python类(三)-多继承的区别

原文:https://www.cnblogs.com/sch01ar/p/8360977.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!