首页 >后端开发 >Python教程 >为什么 Python 中 `0 < 0 == 0` 的计算结果为 `False`?

为什么 Python 中 `0 < 0 == 0` 的计算结果为 `False`?

DDD
DDD原创
2024-12-09 03:27:12709浏览

Why Does `0 < 0 == 0` Evaluate to `False` in Python?

Python 中的链式比较:揭开 0

在 Python 标准库代码的深处,Python 2.6 的 Queue.py 中存在一个令人费解的构造:

def full(self):
    """Return True if the queue is full, False otherwise
    (not reliable!)."""
    self.mutex.acquire()
    n = 0 < self.maxsize == self._qsize()
    self.mutex.release()
    return n

为什么这个表达式 0

链式比较:Python 的快捷方式

Python 有一个称为“链式比较”的独特功能,使表达范围比较更加简洁。例如,以下内容等效于使用链式比较:

0 < x <= 5

在内部,这些链式比较的解释不同。 Python 从左到右计算表达式,并返回第一个计算结果为 False 的比较的值。在我们的例子中,0

相反,当引入括号时,它们会强制其中的表达式的计算在下一个之前完成应用比较。这否定了链式比较行为。结果,添加括号后我们得到了预期的 True 值:

(0 < 0) == 0
0 < (0 == 0)

因此,full() 方法的表达式 0

self.maxsize == self._qsize(),如果 self.maxsize 为 0,则计算结果为 False,表示当大小限制设置为 0 时,队列永远不会满。

以上是为什么 Python 中 `0 < 0 == 0` 的计算结果为 `False`?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn