[] == False 中表达式"word"的内容按什么顺序解析?这似乎违背了所有逻辑:
>>> "word" in [] == False
False
>>> ("word" in []) == False
True
>>> "word" in ([] == False)
TypeError
Python 实际上是如何解释这个表达式的,为什么要这样解释?
编辑:
最一般的情况似乎是
>>> any_value in any_list == any_symbol_or_value
False
请您参考如下方法:
通常你可以用 this table. 找出运算符的优先级.
但这实际上是一个棘手的例子:
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).
所以 "word" in [] == False真的是
("word" in []) and ([] == False)
其中两个[]实际上是同一个对象。
这对其他比较很有用,即0 < a < 10 ,但这里真的很困惑!
