【发布时间】:2012-03-16 04:32:21
【问题描述】:
答案here 给出了一个挥手引用的情况,您希望__ne__ 返回的东西不仅仅是__eq__ 的逻辑逆,但我无法想象任何这样的情况。有什么例子吗?
【问题讨论】:
-
至少
>和<=有这样的情况。即NaN < anything => false和NaN >= anything => false。 (假设python遵循IEEE浮点逻辑) -
是的,基本上任何没有total order 的东西都属于该类别。现在,由于显而易见的原因,这些东西有点罕见,但它们确实存在。 NaN 就是一个很好的例子。
-
但即使对于
NaN,它至少在python中也成立:NaN != NaN => True,NaN == NaN => False。 -
equals(__eq__) 可能不会返回Boolean类型而not equals(__ne__) 可能不会 与等于相反...违背所有直觉。 - 我接受它作为 Python 方式。我想它有它的好处,正如答案所解释的那样。然而,对于刚接触这门语言的人来说,这真是令人毛骨悚然。
标签: python operator-overloading