Python Switch 重复调用小问题

栏目: Python · 发布时间: 7年前

内容简介:大家都知道Python 中没有Switch 关键词,如果写一堆if-elif-else 非常不美观,通常的做法是使用字典,今天遇到一个小问题,如下:写完测试一下,发现字典里面每个函数都会被执行一遍,有点蒙,不过马上就明白了,但是一时不知道该如何解决,Google 下找到了解决方式:改一下:

大家都知道 Python 中没有Switch 关键词,如果写一堆if-elif-else 非常不美观,通常的做法是使用字典,今天遇到一个小问题,如下:

class Recource(object):
   def do(self, provider, action):
       return {
         'aliyun':{
             'create': self.__create__(),
             'update': self.__update__(),
             ...
             },
         'aws': ...
        }[provider][action]

写完测试一下,发现字典里面每个函数都会被执行一遍,有点蒙,不过马上就明白了,但是一时不知道该如何解决,Google 下找到了解决方式: Pythonic switch within class ,

改一下:

class Recource(object):
   def do(self, provider, action):
       return {
         'aliyun':{
-            'create': self.__create__(),
-            'update': self.__update__(),
+            'create': lambda: self.__create__(),
+            'update': lambda: self.__update__(),
             ...
             },
         'aws': ...
-       }[provider][action]
+       }[provider][action]()

原来如此,简单快捷,学习了,又一次面向Stack Overflow 编程 :P。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

数据结构及应用算法教程

数据结构及应用算法教程

2011-5 / 45.00元

《数据结构及应用算法教程(修订版)》从数据类型的角度,分别讨论了四大类型的数据结构的逻辑特性、存储表示及其应用。此外,还专辟一章,以若干实例阐述以抽象数据类型为中心的程序设计方法。书中每一章后都配有适量的习题,以供读者复习提高之用。第1~9章还专门设有“解题指导与示例”一节内容,不仅给出答案,对大部分题目提供了详尽的解答注释;其中的一些算法题还给出了多种解法。书中主要算法和最后一章的实例中的全部程......一起来看看 《数据结构及应用算法教程》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

URL 编码/解码
URL 编码/解码

URL 编码/解码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具