欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2021年08月11日 09:45:13   作者:liulijun-dev  
與Java、C\C++等語言不同,Python中是不提供switch/case語句的,這一點讓我感覺到很奇怪。我們可以通過如下幾種方法來實現(xiàn)switch/case語句

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

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

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

可以使用字典實現(xiàn)switch/case這種方式易維護,同時也能夠減少代碼量。如下是使用字典模擬的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表達式,代碼如下:

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語句,而且足夠靈活。尤其在運行時可以很方便的在字典中添加或刪除一個switch/case選項。

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

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

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)容!

相關(guān)文章

  • 對python的輸出和輸出格式詳解

    對python的輸出和輸出格式詳解

    今天小編就為大家分享一篇對python的輸出和輸出格式詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • python數(shù)字圖像處理之高級形態(tài)學處理

    python數(shù)字圖像處理之高級形態(tài)學處理

    這篇文章主要介紹了python數(shù)字圖像處理之高級形態(tài)學處理,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • python mac下安裝虛擬環(huán)境的圖文教程

    python mac下安裝虛擬環(huán)境的圖文教程

    這篇文章主要介紹了python mac下安裝虛擬環(huán)境 的相關(guān)資料,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-04-04
  • python實現(xiàn)微信防撤回神器

    python實現(xiàn)微信防撤回神器

    這篇文章主要為大家詳細介紹了python實現(xiàn)微信防撤回神器,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • 利用Python進行金融數(shù)據(jù)分析的全過程

    利用Python進行金融數(shù)據(jù)分析的全過程

    金融數(shù)據(jù)分析在現(xiàn)代金融行業(yè)中扮演著至關(guān)重要的角色,通過使用Python編程語言,我們可以對大量金融數(shù)據(jù)進行處理、分析和可視化,從而獲得有價值的洞察,本篇文章將介紹如何使用Python進行金融數(shù)據(jù)分析,需要的朋友可以參考下
    2024-08-08
  • Python錯誤: SyntaxError: Non-ASCII character解決辦法

    Python錯誤: SyntaxError: Non-ASCII character解決辦法

    這篇文章主要介紹了Python錯誤: SyntaxError: Non-ASCII character解決辦法的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • Python代碼中偏函數(shù)的使用詳解

    Python代碼中偏函數(shù)的使用詳解

    Python中的偏函數(shù)是來自函數(shù)式編程的一個強大工具,它的主要目標是減少函數(shù)調(diào)用的復雜性,本文將詳細介紹偏函數(shù)的具體使用,需要的小伙伴可以了解下
    2023-12-12
  • 如何用python批量發(fā)送工資條郵件

    如何用python批量發(fā)送工資條郵件

    大家好,本篇文章主要講的是如何用python批量發(fā)送工資條郵件,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • 基于Python搭建人臉識別考勤系統(tǒng)

    基于Python搭建人臉識別考勤系統(tǒng)

    人臉識別目前正被用于讓世界更安全、更智能、更方便。在本文中,你將學習如何使用 Python 構(gòu)建人臉識別系統(tǒng)。人臉識別比人臉檢測更進一步。感興趣的可以學習一下
    2021-12-12
  • 玩轉(zhuǎn)python爬蟲之URLError異常處理

    玩轉(zhuǎn)python爬蟲之URLError異常處理

    這篇文章主要介紹了python爬蟲的URLError異常處理,詳細探尋一下URL\HTTP異常處理的相關(guān)內(nèi)容,通過一些具體的實例來分析一下,非常的簡單,但是卻很實用,感興趣的小伙伴們可以參考一下
    2016-02-02

最新評論