Switch ... Case 语法你支不支持?
2023-03-09 22:12:24 时间
Python3.10 新增了一个语法特性。
就是最近一直被热议的 switch-case 语句
我刚接触Python的时候,也纳闷Python咋个 switch 语句都没有。
后来想明白了, 因为Python的哲学里面推崇的是简单实用,从Python之禅里面也能窥探一二
- 任何问题应有一种
- 且最好只有一种,
- 显而易见的解决方法
在没有 switch … case 语句的时候,我们都是怎么解决这种问题的呢?
用 if … elif…
例如:
- if code == 200:
- return "ok"
- elif code == 404:
- return "no found"
- elif code == 500
- return "error"
- else:
- return "unknow"
这段代码看起来就很直观,只是稍微啰嗦的地方就是每行都有code==xxx的表达式判断语句
于是,在一些Python最佳实践里面,某些场景就推荐用字典来实现, 例如根据某个变量值返回不同的结果时
- data = {
- 200: "ok",
- 404: "no found",
- 500: "error",
- }
- value = data.get(code, "unkonw")
很好的解决的代码繁琐的问题。
我们再来看看Python3.10中的switch case 怎么用的
- http_code = "418"
- match http_code:
- case "200":
- print("OK")
- do_something_good()
- case "404":
- print("Not Found")
- do_something_bad()
- case "418":
- print("I'm a teapot")
- make_coffee()
- case _:
- print("Code not found")
和其他语言中的switch case 语法差不多,新增了match 关键字,比Java少了“break”关键字。
Python从91年发布到今天经历了30个年头
说真的,没有 switch case 完全不影响开发效率,到3.10引入这么个语法糖出来,只能算是个不痛不痒的功能
真正用在生产环境,也是5、6年之后了,除非后面有重大版本的发布,谁没事瞎折腾跟着你每年升级版本。
要知道,现在依然还有不少老系统还跑着Python2.x
我个人对这种语法糖层面的改进基本是没啥可激动的!你要问我支不支持,我肯定支持,这样以后我也可以理直气壮地跟别人说,谁说Python不支持 swtich case....
本文转载自微信公众号「Python之禅」,可以通过以下二维码关注。转载本文请联系Python之禅公众号。
相关文章
- 图像处理工具Python扩展库,你了解吗?
- 十个常用的损失函数解释以及Python代码实现
- 30 个数据科学工作中必备的 Python 包
- 如何在 Windows 上安装 Python
- 几行 Python 代码就可以提取数百个时间序列特征
- 使用Python快速搭建接口自动化测试脚本实战总结
- 哪种编程语言最适合开发网页抓取工具?
- 不要在 Python 中使用循环,这些方法其实更棒!
- 震惊!用Python探索《红楼梦》的人物关系!
- 如何最简单、通俗地理解Python模块?
- 酷炫,Python实现交通数据可视化!
- 为什么急于寻找Python的替代者?
- 30 个数据工程必备的Python 包
- 去字节面试被面这题能答上来吗?谈谈你对时间轮的理解?
- 火山引擎在行为分析场景下的 ClickHouse JOIN 优化
- 用Python爬取了某宝1166家月饼数据进行可视化分析,终于找到最好吃的月饼~
- 在 Linux 上试试这个基于 Python 的文件管理器
- Python列表解析式到底该怎么用?
- 如何快速把你的 Python 代码变为 API
- 十个Python初学者常犯的错误