python docs中的哪个地方允许`in`运算符被链接?

Eri*_*ric 6 python operators comparison-operators

我最近发现以下内容True:

'a' in 'ab' in 'abc'
Run Code Online (Sandbox Code Playgroud)

我知道python比较链接这样的a < b < c,但我在文档中看不到有关这是合法的.

这是CPython实现中的偶然特性,还是指定了这种行为?

Mar*_*ers 8

这是完全指定的行为,而不是偶然的功能.运算符链接在比较运算符部分中定义:

比较可以任意链接,例如,x < y <= z等同于x < y and y <= z,除了y仅评估一次(但在两种情况下z都没有被评估,当x < y发现是假的时).

in是比较运营商之一; 来自同一部分:

comp_operator ::=  "<" | ">" | "==" | ">=" | "<=" | "<>" | "!="
                   | "is" ["not"] | ["not"] "in"
Run Code Online (Sandbox Code Playgroud)

对于可能没有多大意义的组合没有例外.

因此,您用作示例的特定表达式将被执行为'a' in 'ab' and 'ab' in 'abc', 'ab'文字仅执行(加载)一次.