returns 不同长度的三元运算符
Ternary operator with returns of different length
在 python3.9 下,(1,0) if False else 1
会像人们预期的那样解析为 1
。但是,1,0 if False else 1
(即上面没有括号的)解析为 (1,1)
。为什么会这样?
请注意,如果将表达式重写为 if: [...] else,则不会发生同样的情况,即
if False:
1,0
else:
1
按预期解析为 1
。
运算符优先级
1,0 if False else 1
等同于 1, (0 if False else 1)
在 python3.9 下,(1,0) if False else 1
会像人们预期的那样解析为 1
。但是,1,0 if False else 1
(即上面没有括号的)解析为 (1,1)
。为什么会这样?
请注意,如果将表达式重写为 if: [...] else,则不会发生同样的情况,即
if False:
1,0
else:
1
按预期解析为 1
。
运算符优先级
1,0 if False else 1
等同于 1, (0 if False else 1)