[on_true] if [expression] else [on_false]
如果expression
是False
,[on_true]
仍然得到评估吗?
我问的原因是因为我有一个[on_true]
的django ORM查询,并且如果每次运行此行都会对其求值,它将以另一种方式编写。
答案 0 :(得分:10)
检查条件的真实性后,将仅对条件表达式的一侧求值。可以保证并记录在以下语言参考中:https://docs.python.org/3/reference/expressions.html#conditional-expressions
您可以在其中放置任何垃圾表达式以使自己相信这一事实:
>>> wtf.errorerror - error + 1/0 if False else "potato"
'potato'