python为什么不需要三目运算符和switch

对于三目运算符(ternary operator),python可以用conditional expressions来替代

如对于x<5?1:0可以用下面的方式来实现

1 if x<5 else 0

注: conditional expressions是在python 2.5之前引入的,所以以上代码仅适用于2.5以及之后的版本

对于2.5之前的版本,可以用下面这种形式

X<5 and 1 or 0

对于switch,我们完全可以用dictionary来实现,看下面的例子

>>> def switch(choice):
return dict(enumerate(range(4)))[choice]

>>> switch(1)
1
>>> switch(0)
0


values = {
    value1: do_something1,
    value2: do_something2,
    ...
    valueN: do_somethingN,
    }

values.get(var, do_default_something)()


  
posted @ 2011-06-15 11:05  john2000  阅读(2875)  评论(0编辑  收藏  举报