1.  
  1. # 第一种方式使用python中的字典
    # author:wanstack
  2.  
  3. def first_func():
    print('first_func')
  4.  
  5. def second_func():
    print('second_func')
  6.  
  7. def third_func():
    print('third_func')
  8.  
  9. def fourth_func():
    print('fourth_func')
  10.  
  11. menu = """
    ##############################
    1. 选择第一个函数
    2. 选择第二个函数
    3. 选择第三个函数
    4. 选择第四个函数
    ##############################
    """
    print(menu)
    choice = input('Please input your choice:')
    # dict_menu = {"1" : first_func,
    # "2" : second_func,
    # "3" : third_func,
    # "4" : fourth_func
    # }
    # print(type(choice))
    # dict_menu[choice]()
  12.  
  13. list_menu = [first_func,second_func,third_func,fourth_func]
    choice = int(choice)
    dict_menu = {}
    for index,item in enumerate(list_menu):
    # print(index,item)
    dict_menu[index] = item
  14.  
  15. dict_menu[choice]()
  1.  

第二种方式使用反射

python中的反射功能是由以下四个内置函数提供:hasattr、getattr、setattr、delattr,改四个函数分别用于对对象内部执行:检查是否含有某成员、获取成员、设置成员、删除成员。

  1. class Foo(object):
  2.  
  3. def __init__(self):
  4. self.name = 'wupeiqi'
  5.  
  6. def func(self):
  7. return 'func'
  8.  
  9. obj = Foo()
  10.  
  11. # #### 检查是否含有成员 ####
  12. hasattr(obj, 'name')
  13. hasattr(obj, 'func')
  14.  
  15. # #### 获取成员 ####
  16. getattr(obj, 'name')
  17. func = getattr(obj, 'func')
    func()
  18.  
  19. # #### 设置成员 ####
  20. setattr(obj, 'age', 18)
  21. setattr(obj, 'show', lambda num: num + 1)
  22.  
  23. # #### 删除成员 ####
  24. delattr(obj, 'name')

Python中实现switchcase的更多相关文章

  1. python中定义函数和参数的传递问题

    作者:達聞西链接:https://zhuanlan.zhihu.com/p/24162430来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 5.2.4 函数.生成器和类 ...

  2. [转]Python中的str与unicode处理方法

    早上被python的编码搞得抓耳挠腮,在搜资料的时候感觉这篇博文很不错,所以收藏在此. python2.x中处理中文,是一件头疼的事情.网上写这方面的文章,测次不齐,而且都会有点错误,所以在这里打算自 ...

  3. python中的Ellipsis

    ...在python中居然是个常量 print(...) # Ellipsis 看别人怎么装逼 https://www.keakon.net/2014/12/05/Python%E8%A3%85%E9 ...

  4. python中的默认参数

    https://eastlakeside.gitbooks.io/interpy-zh/content/Mutation/ 看下面的代码 def add_to(num, target=[]): tar ...

  5. Python中的类、对象、继承

    类 Python中,类的命名使用帕斯卡命名方式,即首字母大写. Python中定义类的方式如下: class 类名([父类名[,父类名[,...]]]): pass 省略父类名表示该类直接继承自obj ...

  6. python中的TypeError错误解决办法

    新手在学习python时候,会遇到很多的坑,下面来具体说说其中一个. 在使用python编写面向对象的程序时,新手可能遇到TypeError: this constructor takes no ar ...

  7. python中的迭代、生成器等等

    本人对编程语言实在是一窍不通啊...今天看了廖雪峰老师的关于迭代,迭代器,生成器,递归等等,word天,这都什么跟什么啊... 1.关于迭代 如果给定一个list或tuple,我们可以通过for循环来 ...

  8. python2.7高级编程 笔记二(Python中的描述符)

    Python中包含了许多内建的语言特性,它们使得代码简洁且易于理解.这些特性包括列表/集合/字典推导式,属性(property).以及装饰器(decorator).对于大部分特性来说,这些" ...

  9. python cookbook 学习系列(一) python中的装饰器

    简介 装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象.它经常用于有切面需求的场景,比如:插入日志.性能测试.事务处理.缓 ...

随机推荐

  1. APP移动端开发html模板

    移动端开发模板: 750的稿子除以75: <!DOCTYPE html> <html> <head> <meta charset="utf-8&qu ...

  2. Tasks in parallel

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...

  3. Method Swizzling 剖析

    一.背景介绍 关于Method Swizzling的文章一大堆,讲的非常好的也数不胜数.不过,很多人只是会用,知道一些注意点.深入一点问的话,估计就答得不好.归其原因就是对Method Swizzli ...

  4. MySql中concat函数的用法(链接字符串)

    MySQL中concat函数使用方法:CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. 注意:如果所有参数均为非二进制字符串 ...

  5. WebSocket安卓客户端实现详解(一)–连接建立与重连

    http://blog.csdn.net/zly921112/article/details/72973054 前言 这里特别说明下因为WebSocket服务端是公司线上项目所以这里url和具体协议我 ...

  6. Greatest Common Increasing Subsequence

    /*HDU1423 最长公共递增*/ #include <stdio.h> #include <string.h> #include <iostream> usin ...

  7. JAVA面试题整理(3)-Spring

    1.BeanFactory 和 FactoryBean? 2.Spring IOC 的理解,其初始化过程? 3.BeanFactory 和 ApplicationContext? 4.Spring B ...

  8. RabbitMQ单机多实例配置

    由于某些因素的限制,有时候你不得不在一台机器上去搭建一个rabbitmq集群,当然这种集群只适合自己玩玩,验证下结论,这个有点类似zookeeper的单机版.真实生成环境还是要配成多机集群的.有关怎么 ...

  9. 爬虫框架Scrapy之Spider

    Spider Spider类定义了如何爬取某个(或某些)网站.包括了爬取的动作(例如:是否跟进链接)以及如何从网页的内容中提取结构化数据(爬取item). 换句话说,Spider就是您定义爬取的动作及 ...

  10. 爬虫之Fiddler抓取HTTPS设置

    Fiddler抓取HTTPS设置 启动Fiddler,打开菜单栏中的 Tools > Telerik Fiddler Options,打开“Fiddler Options”对话框. 对Fiddl ...