适用于简单情况.
定义:
条件表达式(又名三元运算符)是if语句的缩略版. 例如: x = 1 if cond else 2
.
优点:
比if语句更简短, 更方便.
缺点:
有时比if语句更难理解. 如果表达式很长,就难以一眼望到条件.
结论:
适用于简单情况. 以下每部分均不得长于一行: 真值分支, if 部分和 else 部分. 情况复杂时应使用完整的if语句.
正确:
one_line = 'yes' if predicate(value) else 'no'
slightly_split = ('yes' if predicate(value)
else 'no, nein, nyet')
the_longest_ternary_style_that_can_be_done = (
'yes, true, affirmative, confirmed, correct'
if predicate(value)
else 'no, false, negative, nay')
错误:
bad_line_breaking = ('yes' if predicate(value) else
'no') # 换行位置错误
portion_too_long = ('yes'
if some_long_module.some_long_predicate_function(
really_long_variable_name)
else 'no, false, negative, nay') # 过长