Python三元运算顺序

问题描述 投票:6回答:1
[on_true] if [expression] else [on_false]

如果expressionFalse[on_true]是否仍然得到评估?

我问的原因是因为我有一个django ORM查询作为[on_true],并且如果每次运行此行时进行评估,则会以另一种方式编写。

python ternary-operator
1个回答
10
投票

在检查条件的真实性之后,将仅评估条件表达式的一侧。这在语言参考中得到保证和记录:https://docs.python.org/3/reference/expressions.html#conditional-expressions

你可以在那里放置任何垃圾表达来说服自己:

>>> wtf.errorerror - error + 1/0 if False else "potato"
'potato'
© www.soinside.com 2019 - 2024. All rights reserved.