Python 多继承时方法解析顺序

  在Python 3.x的多继承树中,如果在中间层某类有向上一层解析的迹象,则会先把本层右侧的其他类方法解析完,然后从本层最后一个解析的类方法中直接进入上一层并继续解析,也就是在从子类到超类的反向树中按广度优先解析。
在下面的示例代码中,先从SubClassD类进入SubClassB类,因为在SubClassB类中有向上一层解析的迹象,所以先解析SubClassC,然后由SubClassC进入上一层的SubClassA,再由SubClassA进入上一层的BaseClass。

代码输出结果为: 
继承树和方法解析顺序如下图所示:


如果在解析过程中,不再有向基类方向上一层解析的迹象,则同一层中右侧其他类方法不再解析。例如下面的代码:

 
代码输出结果为

猜你喜欢

转载自www.cnblogs.com/marshsl/p/9080212.html