是的,它是在2.5版中添加表达式语法为:
a if condition else b
第一condition
被评估,则恰好中的任一个a
或b
进行评估并返回基于所述布尔值condition
。如果condition
为True
,a
则被评估并返回但b
被忽略,否则b
被评估为返回但a
被忽略。
这允许发生短路,因为condition
仅当a
评估为true时才进行评估,而b
根本不评估,而当condition
为false评估时,仅当b
评估时a
就完全不评估。
例如:
>>> 'true' if True else 'false'
'true'
>>> 'true' if False else 'false'
'false'
请注意,条件是表达式,而不是语句。这意味着您不能在条件表达式中使用赋值语句pass
或其他语句:
>>> pass if False else x = 3
File "<stdin>", line 1
pass if False else x = 3
^
SyntaxError: invalid syntax
但是,您可以使用条件表达式来分配变量,如下所示:
x = a if True else b
本文首发于python黑洞网,博客园同步跟新