我发现以下代码的工作方式类似于Python中的条件运算符。
num1 = condition and val1 or val2
我可以用它代替以下内容吗?
num1 = val1 if condition else val2
答案 0 :(得分:2)
出于两个原因,我建议您不要这样做。
答案 1 :(得分:2)
不,你不能。如果val1
是虚假:
>>> 0 if True else 1
0
>>> True and 0 or 1
1
答案 2 :(得分:2)
您建议的第一个代码并不总是与第二个代码一样,因为这里有一个反例,其中condition
为真,val1
为0,val2
为2
num1 = True and 0 or 2
num1
等于赋值后的2,因为在逻辑表达式的上下文中,0被评估为false。在第二个代码中,结果将改为0。