2008年5月15日 星期四

switch-case在Python裡面的做法

在Python裡面通常在判斷多種情況的時候都是用
if condition:
statements
elif condition:
statements
else condition:
statements

因為Python沒有switch-case語法. 然而其實沒有switch-case語法的原因在於利用Python內建的資料結構dictionary就可以達到這種效果.

一般我們的switch寫法會像下面這樣 :


switch(case)
{
case 1:
case_1();
break;
case 2:
case_2();
break;
...
}
而在Python裡面的做法是 :


switch = {
1: case_1,
2: case_2
}

switch[case]()
把switch設定成dictionary, 然後每個case會對應到一個function, 這個function就是執行那個case的動作. 在呼叫的時候就指定switch裡面所對應到的function.
在這個例子裡面是沒有帶參數的function, 實際上也可以帶參數. 例如 : switch[case](x).


參考內容 :
http://www.mustap.com/pythonzone_post_224_python-switch-statement
http://pythonly.blogspot.com/2008/04/python-switch-case.html

沒有留言: