翻閱decimal.py
,它在許多特殊方法中使用NotImplemented
。例如Python未實現常量
class A(object):
def __lt__(self, a):
return NotImplemented
def __add__(self, a):
return NotImplemented
NotImplemented
可以由「富比」 特殊方法(
__eq__()
,__lt__()
, 和朋友)返回特殊值,指示 比較沒有與 相關的其他類型實現。
它沒有談論其他特殊方法,也沒有描述行爲。
它似乎是一個神奇的物體,如果從其他特殊方法返回引發TypeError
,並且在「豐富的比較」中,特殊方法什麼也不做。
例如
print A() < A()
打印True
,但
print A() + 1
提高TypeError
,所以我很好奇,這是怎麼回事,什麼是NotImplemented的使用/行爲。
全部正確。你完全描述了NotImplemented。問題是什麼? – 2009-06-30 10:06:58
我的問題是,如果在doc中,它特別提到了「豐富比較」的特殊方法,其他方法應該忽略它,畢竟它只是另一個對象,我找不到doc解釋一般行爲或如何處理未實現 – 2009-06-30 11:56:05