前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python学习(20):字典替代Switch

Python学习(20):字典替代Switch

作者头像
py3study
发布2020-01-12 20:49:36
6860
发布2020-01-12 20:49:36
举报
文章被收录于专栏:python3

Python本身并不提供Switch的语法功能,为了能够解决类似switch分支需求的问题,我们可以使用字典代替实现。 解决思路:

  1. 利用字典取值的get方法的容错性,处理switch语句中的default情况
  2. 设置字典的vlaue为对应方法名,来代替switch语句中的代码块
  3. 为不同key设置相同的value,模拟switch中穿透
代码语言:javascript
复制
def taskForSunday():
    print("今天休息")
def taskForRest():
    print("今天休息")
def taskForChinese():
    print("今天上语文课")
def taskForMath():
    print("今天上数学课")
def taskForEnglish():
    print("今天上英语课")
def taskForDefault():
    print("输入错误啦。。。。")

switchDic = {"Sunday":taskForRest,
            "Monday":taskForChinese,
            "Tuesday":taskForMath,
            "Wednesday":taskForEnglish,
            "Tursday":taskForEnglish,
            "Friday":taskForEnglish,
            "Saturday":taskForRest
}
1.测试取值

通过get获取字典key对应的方法后,又添加了个括号,这样会执行得到的方法

代码语言:javascript
复制
day1 = "Monday"
switchDic.get(day1,taskForDefault)() #打印:今天上语文课
2.测试穿透
代码语言:javascript
复制
##Wednesday,Tursday,Friday三个的效果相同
day2 = "Friday"
switchDic.get(day2,taskForDefault)()  #打印:今天上英语课
3.测试Deault效果
代码语言:javascript
复制
#字典的get方法第二个参数是默认值,即通过key值不能找到value时,返回默认值
#这里使用了自定义函数的函数名:taskForDefault,用于实现switch的defalut功能
day3 = "天气不错哦"
switchDic.get(day3,taskForDefault)() #打印:输入错误啦......
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/08/14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.测试取值
  • 2.测试穿透
  • 3.测试Deault效果
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档