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

    本博客是博主个人学习时的一些记录,不保证是为原创,个别文章加入了转载的源地址还有个别文章是汇总网上多份资料所成,在这之中也必有疏漏未加标注者,如有侵权请与博主联系。
  • 相关阅读:
    尘埃里的路人甲
    尘埃里的路人辛
    尘埃里的路人庚
    尘埃里的路人己
    尘埃里的路人戊
    尘埃里的路人丁
    C语言II博客作业04
    C语言II博客作业03
    C语言II博客作业02
    C语言II博客作业01
  • 原文地址:https://www.cnblogs.com/devilmaycry812839668/p/13217412.html
Copyright © 2020-2023  润新知