您现在的位置是:亿华云 > 域名

Switch ... Case 语法你支不支持?

亿华云2025-10-09 03:54:09【域名】7人已围观

简介Python3.10 新增了一个语法特性。就是最近一直被热议的 switch-case 语句我刚接触Python的时候,也纳闷Python咋个 switch 语句都没有。后来想明白了, 因为Pytho

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("Im a teapot")         make_coffee()     case _:         print("Code not found") 

和其他语言中的switch case 语法差不多,新增了match 关键字,支不支持比Java少了“break”关键字。语法

Python从91年发布到今天经历了30个年头

说真的,没有 switch case 完全不影响开发效率,到3.10引入这么个语法糖出来,b2b供应网只能算是个不痛不痒的功能

真正用在生产环境,也是5、6年之后了,除非后面有重大版本的发布,谁没事瞎折腾跟着你每年升级版本。

要知道,现在依然还有不少老系统还跑着Python2.x

我个人对这种语法糖层面的改进基本是没啥可激动的!你要问我支不支持,我肯定支持,这样以后我也可以理直气壮地跟别人说,谁说Python不支持 swtich case....

本文转载自微信公众号「Python之禅」,可以通过以下二维码关注。转载本文请联系Python之禅公众号。  

云南idc服务商

很赞哦!(83)