首页 > 技术文章 > python 3新式类的多继承

linwenbin 2019-06-04 09:11 原文

因为我用的是python3,所以所用到的类都是新式类,这里我说的都是新式类,python2类的继承复杂一些,主要有新式类和老式类。python3类(新式类)的继承是是广度优先,实例如下:

class A():
    def __init__(self):
        pass
    def save(self):
        print("This is from A")
class B(A):
    def __init__(self):
        pass
class C(A):
    def __init__(self):
        pass
    def save(self):
        print("This is from C")
class D(B,C):
    def __init__(self):
        pass
fun =  D()
fun.save()

  执行结果为:

F:\dev\python\python.exe F:/pyCharm/code_statistics/Common/try.py
This is from C

Process finished with exit code 0

 

题外话,python2只在有显式继承了Object的类才是新式类,没有显式继承Object的类是经典类,经典类的多继承是深度优先,如果是经典类,控制台输出应该为:

This is from A

推荐阅读