python之理解super及MRO列表 ( 示例版 )

例子   1:

 

 

 

 

class A0:
    def pri(self):
        super().pri()
        print("A0")

class A1(A0):
    def pri(self):
        super().pri()
        print("A1")

class B0:
    def pri(self):
        print("B0")

class B1(B0):
    def pri(self):
        super().pri()
        print("B1")

class X(A1, B1):
    def pri(self):
        super().pri()
        print("X")

x=X()
x.pri()
print(x.__class__.mro())

输出:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

例子   2:

 

 

 

class A0:
    def pri(self):
        #super().pri()
        print("A0")

class A1(A0):
    def pri(self):
        super().pri()
        print("A1")

class B0:
    def pri(self):
        print("B0")

class B1(B0):
    def pri(self):
        super().pri()
        print("B1")

class X(A1, B1):
    def pri(self):
        super().pri()
        print("X")

x=X()
x.pri()
print(x.__class__.mro())

 

输出:

 

 

 

 

 

 

 

 

例子   3:

 

class A0:
    def pri(self):
        #super().pri()
        print("A0")

class B0:
    def pri(self):
        super().pri()
        print("B0")

class B1(B0):
    def pri(self):
        super().pri()
        print("B1")

class X(B1, A0):
    def pri(self):
        super().pri()
        print("X")

x=X()
x.pri()
print(x.__class__.mro())

 

输出:

 

 

 

 

 

 

 

 

 

例子   4:

 

 

 

class A0:
    def pri(self):
        #super().pri()
        print("A0")

class B0:
    def pri(self):
        #super().pri()
        print("B0")

class B1(B0):
    def pri(self):
        super().pri()
        print("B1")

class X(B1, A0):
    def pri(self):
        super().pri()
        print("X")

x=X()
x.pri()
print(x.__class__.mro())

 

输出:

 

 

 

 

 

 

 

例子   5:

 

 

 

class A0:
    def pri(self):
        super().pri()
        print("A0")

class B0:
    def pri(self):
        super().pri()
        print("B0")

class B1(B0):
    def pri(self):
        super().pri()
        print("B1")

class X(B1, A0):
    def pri(self):
        super().pri()
        print("X")

x=X()
print(x.__class__.mro())
x.pri()

 

 

(A0类中执行pri函数时候调用父类object中的pri函数,由于object类中没有pri函数所以报错)

 

posted on 2020-07-07 13:31  Angry_Panda  阅读(241)  评论(0编辑  收藏  举报

导航