我一个前辈演示了这个,我想知道这是一个缺陷,还是有一些先例和操作符结合性的东西来证明它。
>>> False==False in [False]
True
我一个前辈演示了这个,我想知道这是一个缺陷,还是有一些先例和操作符结合性的东西来证明它。
>>> False==False in [False]
True
Python的比较运算符可以链式使用。
False == False in [False]
被评估为
(False == False) and (False in [False])
中间项参与两个比较。in
不要与其他比较运算符链接在一起。x < y < z
这样的表达式合法吗?因为如果是这样,尽管它很方便,但似乎这只是一个小的好处,而代价是让类似 (False==False in [False])==True
这样令人困惑的代码也合法了。 - Charles Claytonin
与其他比较运算符链接在一起以生成清晰的代码。 - Steven Rumbalski
False == False and False in [False]
相同)。但我不确定... - hlt(False==False) in [False]
- Nicolai Krüger(False == False) in [False]
和False == (False in [False])
都是False
。因此,这是链式比较。 - bereal