码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2018-01-26 20:41:55      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:def   方式   顺序   优先   广度优先   .com   odi   http   coding   

多继承的有两个方式,一个是广度优先,一个是深度优先
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类(三)-多继承的区别

标签:def   方式   顺序   优先   广度优先   .com   odi   http   coding   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!