Python-菱形继承问题

本来多重继承的时候,经典类(不继承object类)会执行深度优先搜索,会从最左边继承的父类一直继承下去,直到继承最后一个类后会从自身右边的父类开始继续继承;新式类(继承object类)会执行广度优先搜索,会从最左边继承的父类一直继承下去,在最后一个类之前停下来,之后又从自身第二个父类开始,最后继承最后一个类.
而菱形继承,会导致两者都会把最后一个类继承两次,即继承第一个父类的时候会继承最后一个父类;继承自身右边父类的时候也会再一次继承那最后一个父类.
A(B,C) B(D) C(D) --> 会导致D被继承(引用)两次

猜你喜欢

转载自www.cnblogs.com/chenyoude/p/9834510.html
今日推荐