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

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

DDD
发布: 2024-12-09 03:27:12
原创
716 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板