Python类-多继承的区别
Posted Sch01aR#
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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环境下运行,看看结果
首先继承了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类-多继承的区别的主要内容,如果未能解决你的问题,请参考以下文章