轉載:http://python.jobbole.com/82008/
為什么Python中沒有Switch/Case語句?
不同於我用過的其它編程語言,Python 沒有 switch / case 語句。為了實現它,我們可以使用字典映射:
這段代碼類似於:
函數的字典映射
在 Python 中字典映射也可以包含函數或者 lambda 表達式:
|
def zero():
return "zero"
def one():
return "one"
def numbers_to_functions_to_strings(argument):
switcher = {
0: zero,
1: one,
2: lambda: "two",
}
# Get the function from switcher dictionary
func = switcher.get(argument, lambda: "nothing")
# Execute the function
return func()
|
雖然 zero
和 one
中的代碼很簡單,但是很多 Python 程序使用這樣的字典映射來調度復雜的流程。
example:
def switch_test_item(item, index_b,exename,version,vercheck):
switcher = {
"CPU": CPU_TEST,
"Memory":MEMORY_TEST,
"BIOSVER":BIOSVER_TEST,
"FAN":FAN_TEST,
}
return switcher[item](index_b,exename,version,vercheck)
def CPU_TEST(index_b,exename,version,vercheck):
{
...
}
然后switch_test_item就把index_b,exename,version,vercheck都傳遞給CPU_TEST等功能函數