【发布时间】:2014-06-17 08:33:03
【问题描述】:
我最近偶然发现了 Python 的 NotImplemented 内置函数。经过一番阅读,我现在确实明白了它的目的,但我不明白为什么它评估为 True 作为布尔值。下面的例子让我觉得它像是某种残酷的玩笑:
>>> class A:
... def __eq__(self, other):
... return NotImplemented
...
>>>
>>> a = A()
>>> a == 1
False
>>> bool(a.__eq__(1))
True
我的问题很简单:为什么NotImplemented 会评估为True?
【问题讨论】:
-
通常应该引发异常,而不是返回
-
@RuggeroTurra
NotImplemented属于NotImplementedType类型,它一点也不例外。 有一个NotImplementedError;在这种情况下,我可能会将return NotImplemented替换为raise NotImplementedError。
标签: python