【发布时间】:2026-02-02 09:50:01
【问题描述】:
在 REPL 中运行它给了我
>>> 1 == 2 == 2
False
令我惊讶的是,在 C 语言中,这将评估为 1。我预计右侧的评估结果为 True,而1 == True 在 Python 中是 True。例如,这会像我预期的那样评估:
>>> 1 == (2 == 2)
True
Python 如何解析和评估第一个表达式?这个,评估方式相同,但这是我所期望的,因为== 是右关联的,并且在 C 中会评估为 0
>>> 2 == 2 == 1
False
【问题讨论】:
-
==是一个比较运算符,所以这是被链接的,即(1 == 2) and (2 == 2)。这与1 < 2 < 2相同 -
比较从左到右进行评估。请参阅文档中的Operator precedence。
标签: python