MRO,即方法解析顺序(Method Resolution Order)
mro=深度优先遍历的(DFS)
正常继承模式 没有任何问题。。。
菱形继承模式 就有问题啦。。
比如说C重写了D中的test()方法,A在调用test()时,按照MRO顺序调用的是D中的test,此时C中重写的test()方法将永远访问不到,导致了C只能继承不能重写D中的方法(即使C重写了test()方法也不会访问到),这就是DFS的缺陷。
def A(B,C):
print(A.__mro__)
更多相关问题类的继承问题,有必要再深入学习
原文链接:https://blog.csdn.net/zhangdell/article/details/122041048