codecamp

Python 条件表达式规范 | Google 官方三目写法

条件表达式

Tip

适用于简单情况。

定义:

条件表达式(又名三元运算符)是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')   # 过长
Python Lambda 函数规范 | Google 官方单行写法
Python 默认参数值规范 | Google 官方避坑指南
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }