Python(或通用编程).为什么使用<>代替!=并且存在风险吗?

oro*_*aki 5 python operators

我认为,如果我理解正确,a <> b在功能上是完全相同的a != b,并且在Python中not a == b,但有理由使用<>其他版本吗?我知道Python新手的一个常见错误就是认为它not a is ba != bor 相同not a == b.

  1. 是否会发生类似的误解<>,或者在功能上是否完全相同?
  2. 它在内存,处理器等方面的成本是否更高

Ale*_*lli 15

<>在Python 2中是一个确切的同义词!=- 没有理由使用它,除了无偿的异构性(样式问题)之外没有任何缺点.它一直被劝阻,现在已经在Python 3中删除了.


Mar*_*son 8

只是一个迂腐的说明:<>运营商在某种意义上是错误的名称(错误的?). a <> b自然会被解释为a < b or a > b(评估ab当然只有一次),但因为不是所有的排序是总排序,这不符合实际的语义.例如,2.0 != float('nan')是的,但是2.0 < float('nan') or 2.0 > float('nan')是假的.

!=运营商不受到这种可能的误解.

有关决定放弃<>Python 3.x 的有趣内容(有诗歌!),请参阅Requiem for a operator.

  • 不,我不是; 但这是一个相当合理(错误)的解释,它符合`<=`和`> =`的定义.我没有看到与"<<"和">>"相同的误解风险,但也许这只是我.同样地,我似乎记得IEEE 754(2008版)将`<>?'作为不等操作的可能拼写,以表明它包括'无序'案例以及'小于'和'大于'的情况. (2认同)