1 class D(object): 2 pass 3 class E(object): 4 pass 5 class F(object): 6 pass 7 class C(D, F): 8 pass 9 class B(E, D): 10 pass 11 class A(B, C): 12 pass 13 if __name__ == '__main__': 14 print( A.__mro__)
输出的是(<class '__main__.A'>, <class '__main__.B'>, <class '__main__.E'>, <class '__main__.C'>, <class '__main__.D'>, <class '__main__.F'>, <class 'object'>)
排序方法:
先根据集成的左右优先级顺序画出图,然后先找到入度为0的,即:A,然后把A的所有链接点删除,从左到右找到
入度为0的,即:B,同理划掉B的所有连接点,下一个入度为0的就是E和C,这里采用深度优先,所以下一个是E,继续同理下去就能得到上述输出结果了。