zl程序教程

您现在的位置是:首页 >  后端

当前栏目

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

Python列表 理解 示例 Super
2023-09-11 14:19:19 时间

例子   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函数所以报错)