
正文
Python中实现switchcase
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
# 第一种方式使用python中的字典
# author:wanstackdef first_func():
print('first_func')def second_func():
print('second_func')def third_func():
print('third_func')def fourth_func():
print('fourth_func')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]()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] = itemdict_menu[choice]()
第二种方式使用反射
python中的反射功能是由以下四个内置函数提供:hasattr、getattr、setattr、delattr,改四个函数分别用于对对象内部执行:检查是否含有某成员、获取成员、设置成员、删除成员。
class Foo(object): def __init__(self):
self.name = 'wupeiqi' def func(self):
return 'func'obj = Foo()# #### 检查是否含有成员 ####
hasattr(obj, 'name')
hasattr(obj, 'func')# #### 获取成员 ####
getattr(obj, 'name')
func = getattr(obj, 'func')
func()# #### 设置成员 ####
setattr(obj, 'age', 18)
setattr(obj, 'show', lambda num: num + 1)# #### 删除成员 ####
delattr(obj, 'name')







