元组相等运算符:'a', 'b' == ('a', 'b')

equality operator with tuple: 'a', 'b' == ('a', 'b')

元组可以不带括号。

t1 = 'a', 'b'
t2 = ('a', 'b')
t1 == t2

输出:

True

但是当尝试这个时

'a', 'b' == ('a', 'b')

输出:

('a', False)

谁能解释一下第二部分的输出?

比较'b' == ('a', 'b'),之前求值,所以结果是

'a', ('b' == ('a', 'b'))
('a', False)

, 作为元组运算符具有 极低 的优先级。这意味着如果您不加括号,它将是最后分组的运算符之一。所以,'a', 'b' == ('a', 'b') 不是 ('a', 'b') == ('a', 'b'),而是 'a', ('b' == ('a', 'b')).