Python的条件运算符


类型:Python,创建时间:Dec. 30, 2011, 6:59 p.m.

标题无“转载”即原创文章,版权所有。转载请注明来源:http://hgoldfish.com/blogs/article/8/。

长期以来Python世界的人一直在争论是否应该拥有条件运算符。它可以用来处理根据条件返回不同的值。比如:

if contition:
    x=true_value
else:
    x=false_value

他们虽然讨论了很久,但是一直没什么结果。在python-dev邮件列表和comp.lang.python新闻主上甚至为此举行了一次投票。最后的结果是大家都同意应该添加条件运算符,可是它的语法形式是什么还是没有结果。主要的争论是C语言的cond ? true_v : false_vif cond then true_v else false_v到底挑哪个好。

最终,Guido van Rossum(Python语言的作者)挑了这样一个令人意想不到的语法形式:

true_value if condition else false_value

它的意义是:如果condition为真,计算并返回true_value,并跳过false_value的计算,否则计算并返回false_value。它完全等价于完整形式。

这个表达式的优先级是最低的,但是它优于=号。因此以下这两种形式是一样的

level = 1 if logging else 0
level = (1 if logging else 0)

不过笔者认为后一种形式看起来比较好一点,而且可以免去记忆运算符优先级的麻烦。

标题无“转载”即原创文章,版权所有。转载请注明来源:http://hgoldfish.com/blogs/article/8/。


暂时还没有任何评论。


何不来发表一下您对本文的看法(使用Markdown语法,分段空两行):