[on_true] if [expression] else [on_false]
如果expression
是False
,[on_true]
是否仍然得到评估?
我问的原因是因为我有一个django ORM查询作为[on_true]
,并且如果每次运行此行时进行评估,则会以另一种方式编写。
在检查条件的真实性之后,将仅评估条件表达式的一侧。这在语言参考中得到保证和记录:https://docs.python.org/3/reference/expressions.html#conditional-expressions
你可以在那里放置任何垃圾表达来说服自己:
>>> wtf.errorerror - error + 1/0 if False else "potato"
'potato'