Python三元运算顺序

时间:2019-04-08 20:28:40

标签: python ternary-operator

[on_true] if [expression] else [on_false]

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

我问的原因是因为我有一个[on_true]的django ORM查询,并且如果每次运行此行都会对其求值,它将以另一种方式编写。

1 个答案:

答案 0 :(得分:10)

检查条件的真实性后,将仅对条件表达式的一侧求值。可以保证并记录在以下语言参考中:https://docs.python.org/3/reference/expressions.html#conditional-expressions

您可以在其中放置任何垃圾表达式以使自己相信这一事实:

>>> wtf.errorerror - error + 1/0 if False else "potato"
'potato'