【发布时间】:2019-01-07 14:58:07
【问题描述】:
我正在阅读有关 Python 中的 MRO 的内容,并在 C3 线性化中发现了单调性概念。我明白了,但我很好奇这个概念的起源。谁能解释一下?
【问题讨论】:
标签: python oop method-resolution-order
我正在阅读有关 Python 中的 MRO 的内容,并在 C3 线性化中发现了单调性概念。我明白了,但我很好奇这个概念的起源。谁能解释一下?
【问题讨论】:
标签: python oop method-resolution-order
我很难想象一个有意义的线性化不是单调的:它没有任何意义。
但值得一提的是,在这种情况下,单调性概念的起源可以追溯到 1992 年的出版物Monotonic Conflict Resolution Mechanisms for Inheritance by Ducournau, R., M. Habib, M. Huchard, & M. L. Mugnier.
在其中,作者检查了当时存在的存在缺陷的线性化算法,因为它们不满足单调性。换句话说,这些算法通过向层次结构中添加新的子类来重新排序线性化链。该属性被确定为有问题,随后在 C3 线性化中得到修复。
【讨论】: