NotImplemented
允许您指出尚未执行两个给定操作数之间的比较(而不是表明该比较有效,但False
对于这两个操作数却产生yield )。
对于对象x和y,首先x.__op__(y)
尝试。如果未实现或返回NotImplemented,请y.__rop__(x)
尝试。如果也未实现或返回NotImplemented,则引发TypeError异常。但是请参见以下异常:
上一项的例外:如果左操作数是内置类型或新样式类的实例,而右操作数是该类型或类的适当子类的实例,并且覆盖基数的__rop__()
方法,则右操作的__rop__()
方法是左操作的尝试过__op__()
的方法。这样做是为了使子类可以完全覆盖二进制运算符。否则,左操作数的__op__()
方法将始终接受右操作数:当期望给定类的实例时,该类的子类的实例总是可接受的。