元组相等运算符:'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'))
.
元组可以不带括号。
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'))
.