多重继承和MRO(方法解析顺序)/UML

"""
UML - Unified Modeling Language - 统一建模语言
标准化的图形符号 - 便于沟通交流 - 一图胜千言
最重要的三种图:用例图 / 类图 / 时序图 
多重继承和MRO(方法解析顺序)- Method Resolution Order
Python 2的MRO类似于深度优先搜索
Python 3的MRO类似于广度优先搜索(C3算法)
"""


class A(object):

    def foo(self):
        print('foo() in A')


class B(A):
    pass
    # def foo(self):
    #     print('foo() in B')


class C(A):

    def foo(self):
        print('foo() in C')


class D(B, C):
    pass


def main():
    print(D.mro())
    # print(D.__mro__)
    d = D()
    d.foo()


if __name__ == '__main__':
    main()


你可能感兴趣的:(多重继承和MRO(方法解析顺序)/UML)