Python的字典,是一个很神奇的东西,有人说,什么都可以装。可以装下整个宇宙?好像哪里有看到这么一段很霸气的文字。学习python的大半年时间里,虽然见识的不是很多,但是已然觉得字典是一个很霸道的存在。之前
Python——三级菜单(字典+文件读写)这篇帖子,就有涉及到字典的应用,可以装的下n级菜单,如果只看教科书根本想不到还有这么一出。那今天再针对上一篇帖子Python—蜕变的必经之路(从脚本到应用程序)中的一段代码,进行字典的介绍。
def interactive(acc_data):
'''
interact with user
:param acc_data:
:return:
'''
menu =u'''
————————ABC BANK————————
\033[32;1ml. account info
2. repayment
3. withdraw
4. transfer
5. bill
6. logout
\033[0m'''
menu_dic = {
"1": account_info,
"2": repay,
"3": withdraw,
"4": transfer,
"5": pay_check,
"6": logout,
}
exit_flag = False
while not exit_flag:
print(menu)
user_option = input(">>:").strip()
if user_option in menu_dic:
exit_flag = menu_dic[user_option](acc_data)
else:
print("\033[31;1mOption does not exist!\033[0m")
上面是一个interactive函数,函数内部其实就是想根据输入的1-6来调用对应的函数。整个函数的核心语句是exit_flag = menu_dic[user_option](acc_data)
menu_dic对应的是一个字典,键是1-6,键值其实是6个函数(具体函数实现的功能代码此处就省略了),要调用函数,先get函数名字menu_dic[user_option],再加上一个括号和参数,就是调用函数了:menu_dic[user_option](acc_data)。有没有觉得挺神奇的
其实这个函数是要实现一个6分支的IF判断语句的,演变成了字典的使用。好处就在于,逻辑清晰明了,即使字典中再增加几个甚至几十个键值对,代码可读性也很高。如果你是几十个if下来,肯定要看崩溃。
最近事务有点繁忙,学习也有点搁浅了,更新自然也会少一些,好货我会慢慢酝酿的