人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動態(tài)

Python實現(xiàn)switch/case語句

發(fā)布日期:2022-02-14 12:41 | 文章來源:CSDN

使用if…elif…elif…else 實現(xiàn)switch/case

可以使用if…elif…elif..else序列來代替switch/case語句,這是大家最容易想到的辦法。但是隨著分支的增多和修改的頻繁,這種代替方式并不很好調(diào)試和維護(hù)。

使用字典 實現(xiàn)switch/case

可以使用字典實現(xiàn)switch/case這種方式易維護(hù),同時也能夠減少代碼量。如下是使用字典模擬的switch/case實現(xiàn):

def num_to_string(num):
 numbers = {
  0 : "zero",
  1 : "one",
  2 : "two",
  3 : "three"
 }
 return numbers.get(num, None)
if __name__ == "__main__":
 print num_to_string(2)
 print num_to_string(5)

執(zhí)行結(jié)果如下:

two
None

Python字典中還可以包括函數(shù)或Lambda表達(dá)式,代碼如下:

def success(msg):
 print msg
def debug(msg):
 print msg
def error(msg):
 print msg
def warning(msg):
 print msg
def other(msg):
 print msg
def notify_result(num, msg):
 numbers = {
  0 : success,
  1 : debug,
  2 : warning,
  3 : error
 }
 method = numbers.get(num, other)
 if method:
  method(msg)
if __name__ == "__main__":
 notify_result(0, "success")
 notify_result(1, "debug")
 notify_result(2, "warning")
 notify_result(3, "error")
 notify_result(4, "other")

執(zhí)行結(jié)果如下:

success
debug warning error
other

通過如上示例可以證明能夠通過Python字典來完全實現(xiàn)switch/case語句,而且足夠靈活。尤其在運(yùn)行時可以很方便的在字典中添加或刪除一個switch/case選項。

在類中可使用調(diào)度方法實現(xiàn)switch/case

如果在一個類中,不確定要使用哪種方法,可以用一個調(diào)度方法在運(yùn)行的時候來確定。代碼如下:

class switch_case(object):
 def case_to_function(self, case):
  fun_name = "case_fun_" + str(case)
  method = getattr(self, fun_name, self.case_fun_other)
  return method
 def case_fun_1(self, msg):
  print msg
 def case_fun_2(self, msg):
  print msg
 def case_fun_other(self, msg):
  print msg
if __name__ == "__main__":
 cls = switch_case()
 cls.case_to_function(1)("case_fun_1")
 cls.case_to_function(2)("case_fun_2")
 cls.case_to_function(3)("case_fun_other")

執(zhí)行結(jié)果如下:

case_fun_1
case_fun_2
case_fun_other

總結(jié)

就個人來說,使用字典來實現(xiàn)switch/case是最為靈活的,但是理解上也有一定的難度。

本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關(guān)注本站的更多內(nèi)容!

國外服務(wù)器租用

版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實時開通

自選配置、實時開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部