python之 利用字典與函式實現switch case功能

張衝andy發表於2017-12-10

Python不像C/C++,Java等有switch-case的語法。不過其這個功能,比如用Dictionary以及lambda匿名函式特性來替代實現。


字典+函式實現switch模式下的四則運算:(switch 下運算子只用判斷一次,不同於 if 、elsif 判斷)

法1:
-- 程式碼
[root@bigdata01 ~]# cat t1.py 
#!/usr/bin/python
#coding:utf-8

def add(x,y):
return x+y

def sub(x,y):
return x-y

def mul(x,y):
return x*y

def div(x,y):
return x/y

operator = {"+":add,"-":sub,"*":mul,"/":div}

def f(x,o,y):
print operator.get(o)(x,y)

f(2,"+",2)
f(2,"-",2)
f(2,"*",2)
f(2,"/",2)


-- 執行情況
[root@bigdata01 ~]# python t1.py 
4
0
4
1

 

法2:
-- 程式碼
[root@bigdata01 ~]# cat t2.py 
def calc(type,x,y):
calculation = {'+':lambda :x+y,
'*':lambda:x-y,
'-':lambda:x*y,
'/':lambda:x/y}
return calculation[type]() 

result1 = calc('+',3,6)
result2 = calc('-',3,6)
result3 = calc('*',3,6)
result4 = calc('/',3,6)
print result1
print result2
print result3
print result4

-- 執行情況
[root@bigdata01 ~]# python t2.py 
9
18
-3
0

總結: 利用 python 字典中的 key > 相當於 其他語言中的 switch,python 字典中 value 呼叫 對應函式 > 相當於 其他語言中的 case

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31383567/viewspace-2148499/,如需轉載,請註明出處,否則將追究法律責任。

相關文章