相关概念:
MRO:Method Resolution Order,即方法解析顺序,是python中用于处理二义性问题的算法
二义性:
python支持多继承,多继承的语言往往会遇到以下两类二义性的问题:
- 有两个基类A和B,A和B都定义了方法f(),C继承A和B,那么调用C的f()方法时会出现不确定。
- 有一个基类A,定义了方法f(),B类和C类继承了A类(的f()方法),D类继承了B和C类,那么出现一个问题,D不知道应该继承B的f()方法还是C的f()方法。
python3采用C3算法,代码示例:
class A(object):
def foo(self):
print