python switch…case语法
2013-12-23 15:28
369 查看
Python没有switch…case的语法,不过可以用Dictionary和lambda匿名函数的特性来写出同样优雅的代码,比如这段javascript代码:
等价的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到的相关内容(评论中的讨论也值得一看):
http://www.mustap.com/pythonzone_post_224_python-switch-statement http://simonwillison.net/2004/May/7/switch/
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到的相关内容(评论中的讨论也值得一看):
http://www.mustap.com/pythonzone_post_224_python-switch-statement http://simonwillison.net/2004/May/7/switch/
相关文章推荐
- Python中Swithch Case语法实现
- switch case 语法
- Python: 没有switch-case语句
- python语言没有switch-case语句
- switch case语句里面不能定义对象,有语法错误,除非加一个花括号
- Python为什么没有switch/case语句?
- Python switch/case语句实现方法
- Python里如何实现C中switch...case的功能
- python switch..case 与 三目运算符
- C# 语法技巧_三目运算_switch_case
- 语法技巧(三目运算符、switch...case...)
- iOS中switch case语句里面不能定义对象,有语法错误,除非加一个花括号
- Python中switch-case实现(转)
- python中Switch/Case实现的示例代码
- Python中Swithch Case语法实现
- Python中为什么没有switch-case
- 不经常用 居然会忘记 语法什么的!! switch… case 语句的用法
- C++语法switch-case中的变量定义(很久在新浪博客的整理)
- Python中Swithch Case语法实现
- switch case语句里面不能定义对象,有语法错误,除非加一个花括号