您的位置:首页 > 编程语言 > Python开发

python switch..case 与 三目运算符

2012-07-19 15:56 281 查看
对于三目运算符(ternary operator),python可以用conditional expressions来替代

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

1if x<5else 0

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

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

X<5and1or 0

Python不像C/C++,Java等有switch-case的语法。不过其这个功能,比如用Dictionary以及lambda匿名函数特性来替代实现。

比如PHP中的如下代码:

?
Python的等价实现为:

?
如果是稍微复杂一点的函数,也可以做到,比如我们计算加减乘除,函数定义如下:

?
如果是switch实现的话,case(‘操作数’)来判断之行的对应函数。看看Python的实现:

?
这里用的结构如下:

?
还有更加复杂的就是自定义一个Switch类了,可以参考http://code.activestate.com/recipes/410692-readable-switch-construction-without-lambdas-or-di/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: