我在 Python 中遇到了一个非常糟糕的 if - else 运算符示例,其中代码看起来不错,但结果与预期完全不同。这是一个简短的版本:
1 + 4 if None else 3 # returns 3
查看 Operator Precedence在文档中的表中,似乎 if - else 的优先级几乎是最低的。
if - else 是否有任何特殊之处,将 if 左侧的所有内容视为一个表达式?
请您参考如下方法:
嗯,None 总是假的,所以你总是得到 3。
None,则
1 + 4 将是结果:
1 + 4 if True else 3
给出 5。
那正是因为低优先级:它是一样的
(1 + 4) if ... else 3
如您所知,if ...else 的优先级低于 +。
