这个意外的比较输出是如何产生的?

Viv*_*ble 0 python comparison tuples python-2.7

为什么我从下面的表达式中得到三个元素的元组?

>>> 1,2 == 1,2
(1, False, 2)
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 10

由于==运算符的运算符优先级高于,运算符,因此表达式解析为:

1, (2 == 1), 2
Run Code Online (Sandbox Code Playgroud)

用文字生成一个元组1,结果是2 == 1- > False和文字2.

您可以在1, 2元组周围加上括号来强制执行不同的解析顺序:

>>> (1, 2) == (1, 2)
True
Run Code Online (Sandbox Code Playgroud)