它在python文档中的何处允许“ in”运算符被链接?
我最近发现以下结果True
:
'a' in 'ab' in 'abc'
我知道python比较链,例如a < b < c
,但是我在文档中看不到任何合法的链接。
这是CPython实现中的偶然功能,还是指定了此行为?
-
这是完全指定的行为,不是偶然的功能。运算符链接在“ 比较运算符”
部分中定义:可以任意链接比较,例如
x < y <= z
与等效x < y and y <= z
,不同之处在于y
比较仅被评估一次(但在两种情况下z
都x < y
被发现为假,则根本不评估)。in
是比较运算符之一;从同一部分:comp_operator ::= "<" | ">" | "==" | ">=" | "<=" | "<>" | "!=" | "is" ["not"] | ["not"] "in"
对于可能没有多大意义的组合也没有例外。
因此,您作为示例使用的特定表达式将执行为
'a' in 'ab' and 'ab' in 'abc'
,而'ab'
文字仅执行(加载)一次。