許多編程語言都有switch功能,但python我行我素的奉行着極簡的python哲學,沒有switch語句。不過它用一種更巧妙的方式將switch悄悄的藏了起來。
python字典可以實現switch功能,舉兩個具體例子說明:
首先可以用普通函數來實現特定功能:
# 定義需要使用的功能函數
def add(x,y):
return x+y
def cut(x,y):
return x-y
def multi(x,y):
return x*y
def div(x,y):
return x/y
# 定義調用這些函數的字典
operation = {'+':add,'-':cut,'*':multi,'/':div}
# 通過Python字典的get方法調用函數(別忘了輸入參數噢)
print operation['+'](1,2)
print add(1,2)
如果函數體非常簡單,爲了讓代碼更加清晰可讀。這個也可以通過python的lambda表達式實現:
# 用lambda表達式定義python的字典
operation = {'+':lambda a,b:a+b,
'-':lambda a,b:a-b,
'*':lambda a,b:a*b,
'/':lambda a,b:a/b}
# 直接通過字典調用方法即可
print operation['+'](1,2)
print add(1,2)
提到lambda表達式,這是貫徹python簡潔易讀風格的良好方法。之前也提到過幾種比較常用的三目運算符,在我的前一篇文章“算法高級進階簡述”裏有提到另外兩種表達方式,日常工作研究中概要多使用這些高級表達方式。