国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

Python Switch Case三種實現方法代碼實例

瀏覽:59日期:2022-07-20 16:49:03

Python沒有switch語句,只能通過模擬來對應實現:

方法一:使用dictionary

**values = {value1: do_some_stuff1,value2: do_some_stuff2,...valueN: do_some_stuffN,}values.get(var, do_default_stuff)()

根據需求可以自行更改參數內容,靈活運用

def add(x,y): print x+y def minus(x,y): print x-y def multiply(x,y): print x*y def div(x,y): print x/y def fun_case_list(key,arg1,arg2): operator = { ’+’:add, ’-’:minus, ’*’:multiply, ’/’:div } if operator.has_key(key): return operator.get(key)(arg1,arg2) else: return ’No [%s] case in dic’%key #or do other funcif __name__ == '__main__': fun_case_list(’*’,3,5) fun_case_list(’l’,3,4)

或者你可以自己造一個類來實現:

class switch_case(object): def case_to_function(self,case,arg1,arg2): func_name = ’case_func_’+str(case) try: method = getattr(self,func_name) return method(arg1,arg2) except AttributeError: return ’No func found in case list,do default action here’ def case_func_add(self,arg1,arg2): temp = arg1 + arg2 return temp def case_func_minus(self,arg1,arg2): temp = arg1 - arg2 return temp def case_func_multiply(self,arg1,arg2): temp = arg1 * arg2 return temp def case_func_div(self,arg1,arg2): temp = arg1 / arg2 return tempfunc = ’minus’case = switch_case()print case.case_to_function(func,2,5)#或者是構造屬性去送參數,看個人喜好class switch_case(object): def __init__(self, case, arg1, arg2): self.case = str(case) self.arg1 = arg1 self.arg2 = arg2 def case_to_function(self): func_name = ’case_func_’+str(self.case) try: method = getattr(self,func_name) return method() except AttributeError: return ’No func found in case list,do default action here’ def case_func_add(self): temp = self.arg1 + self.arg2 return temp def case_func_minus(self): temp = self.arg1 - self.arg2 return temp def case_func_multiply(self): temp = self.arg1 * self.arg2 return temp def case_func_div(self): temp = self.arg1 / self.arg2 return tempfunc = ’minxus’case = switch_case(func,2,5)print case.case_to_function()

方法二:使用lambda

result = {’a’: lambda x: x * 5,’b’: lambda x: x + 7,’c’: lambda x: x - 2}[value](x)

方法三:Brian Beck提供了一個類 switch 來實現switch的功能

class switch(object): def __init__(self, value): self.value = value self.fall = False def __iter__(self): '''Return the match method once, then stop''' yield self.match raise StopIteration def match(self, *args): '''Indicate whether or not to enter a case suite''' if self.fall or not args: return True elif self.value in args: # changed for v1.5, see below self.fall = True return True else: return Falsev = ’two’for case in switch(v): if case(’one’): print 1 break if case(’two’): print 2 break if case(’ten’): print 10 break if case(’eleven’): print 11 break if case(): # default, could also just omit condition or ’if True’ print 'something else!' # No need to break here, it’ll stop anyway

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 欧美视频一区二区 | 亚洲国产日韩综合久久精品 | 在线亚洲观看 | 久草在线网站 | 久久国产精品岛国搬运工 | 免费特黄一级欧美大片在线看 | 国产高清一级片 | 亚洲免费视频一区 | 亚洲精品自产拍在线观看 | 免费一级毛片免费播放 | 在线视频一二三区2021不卡 | 国产一级特黄aa级特黄裸毛片 | 欧美亚洲国产一区 | 国产乱子伦片免费观看中字 | 模特精品一区二区三区 | 怡红院免费va男人的天堂 | 久久精品免费一区二区视 | 自拍偷自拍亚洲精品一区 | 亚洲欧洲国产成人综合一本 | 123成人网| 日韩一区二区三区免费视频 | 精品理论片一区二区三区 | 青草久草 | 国产乱码一区二区三区四 | 91亚洲精品国产第一区 | 在线观看国产一区 | 一级毛片不卡 | 国产精品香蕉一区二区三区 | 久久精品国产精品亚洲人人 | 欧美成人免费公开播放 | 精品欧美高清一区二区免费 | 91精品国产免费久久国语蜜臀 | 国产精品自在自线亚洲 | 久久成人福利视频 | 97sese论坛 | 99国产精品九九视频免费看 | 亚洲精品视频在线 | 国产网友自拍 | 欧美日韩国产高清一区二区三区 | 久久久国产在线 | 国产精品久久久免费视频 |