class A:
pass
class B:
pass
class C(A, B):
pass
class D(B, A):
pass
class E(C, D):
pass
执行上面的代码会报错:
Traceback (most recent call last):
File "/home/vvv/Workspace/cpython/mydemo/class_demo.py", line 16, in <module>
class E(C, D):
TypeError: Cannot create a consistent method resolution
order (MRO) for bases A, B
算法实现
在 CPython 中对应的算法实现是 Objects/typeobject.c
中的 mro_implementation
函数. 先看 参考然后再看算法实现更容易理解.