Python NotImplemented常量
- 论坛
- Python NotImplemented常量
13 浏览
Python NotImplemented常量
浏览decimal.py
,发现它在许多特殊方法中使用了NotImplemented
,例如:
class A(object): def __lt__(self, a): return NotImplemented def __add__(self, a): return NotImplemented
Python文档指出:
NotImplemented
特殊值,可以由“比较运算符”特殊方法(如
__eq__()
,__lt__()
等)返回,表示该比较与其他类型不兼容。
文档未涉及其他特殊方法,也未描述其行为。
它似乎是一个神奇的对象,如果从其他特殊方法中返回,则会引发TypeError
;而在“比较运算符”特殊方法中则不起作用。
例如:
print A() < A()
输出True
,但是
print A() + 1
会引发TypeError
,因此我很好奇这是怎么回事,以及NotImplemented
的用法/行为是什么。