- 论坛徽章:
- 0
|
Monday, November 17, 2008 16:22 |
Author: Mac | Tags:
Example
,
Python
Python没有switch…case的语法,不过可以用Dictionary和lambda匿名函数的特性来写出同样优雅的代码,比如这段javascript代码:
switch(value){
case 1:
func1();
break;
case 2:
func2();
break;
case 3:
func3();
break;
}
等价的Python代码:
{
1: lambda: func1,
2: lambda: func2,
3: lambda: func3
}[value]()
带赋值的情况:
result = {
'a': lambda x: x * 5,
'b': lambda x: x + 7,
'c': lambda x: x - 2
}[value](x)
用try…catch来实现带Default的情况,不过这个形式就感觉差些了:
try:
{'option1': func1,
'option2': func2,
'option3': func3}[value]()
except KeyError:
# default action
附上google到的相关内容(评论中的讨论也值得一看):
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/84280/showart_1951041.html |
|