条件表达式

适用于简单情况.

定义:

条件表达式(又名三元运算符)是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')   # 过长