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)()


  

你可能感兴趣的:(python)