class L(object):
def __eq__(self, other):
print 'invoked L.__eq__'
return False
class R(object):
def __eq__(self, other):
print 'invoked R.__eq__'
return False
left = L()
right = R()
、左側は、データモデルでdocumentedとして、比較の最初のショットを取得します。Pythonの平等の優先順位
>>> left == right
invoked L.__eq__
False
しかし、私たちはライン6(他のすべての若干の変更を加えた場合同じ):
class R(L):
今右側は、比較の最初のショットを持って取得します。
>>> left == right
invoked R.__eq__
False
なぜですか?それはどこに文書化されていますか、そしてその意思決定の理由は何ですか?