python 文档中的哪个位置允许链接 `in` 运算符?
Where in the python docs does it allow the `in` operator to be chained?
我最近发现以下returns True
:
'a' in 'ab' in 'abc'
我知道 python 比较链接,例如 a < b < c
,但我在文档中看不到任何关于这是合法的内容。
这是 CPython 实现中的偶然特性,还是指定的行为?
这是完全指定的行为,而不是偶然的特征。运算符链接在 Comparison operators section:
中定义
Comparisons can be chained arbitrarily, e.g., x < y <= z
is equivalent to x < y and y <= z
, except that y
is evaluated only once (but in both cases z
is not evaluated at all when x < y
is found to be false).
in
是比较运算符之一;来自同一部分:
comp_operator ::= "<" | ">" | "==" | ">=" | "<=" | "<>" | "!="
| "is" ["not"] | ["not"] "in"
对于可能没有多大意义的组合没有例外。
您用作示例的特定表达式因此被执行为 'a' in 'ab' and 'ab' in 'abc'
,而 'ab'
文字仅被执行(加载)一次。
我最近发现以下returns True
:
'a' in 'ab' in 'abc'
我知道 python 比较链接,例如 a < b < c
,但我在文档中看不到任何关于这是合法的内容。
这是 CPython 实现中的偶然特性,还是指定的行为?
这是完全指定的行为,而不是偶然的特征。运算符链接在 Comparison operators section:
中定义Comparisons can be chained arbitrarily, e.g.,
x < y <= z
is equivalent tox < y and y <= z
, except thaty
is evaluated only once (but in both casesz
is not evaluated at all whenx < y
is found to be false).
in
是比较运算符之一;来自同一部分:
comp_operator ::= "<" | ">" | "==" | ">=" | "<=" | "<>" | "!=" | "is" ["not"] | ["not"] "in"
对于可能没有多大意义的组合没有例外。
您用作示例的特定表达式因此被执行为 'a' in 'ab' and 'ab' in 'abc'
,而 'ab'
文字仅被执行(加载)一次。