当前位置: 首页 > 科技观察

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

时间:2023-03-20 16:53:02 科技观察

Python3.10增加了一个语法特性。最近热议的就是switch-case语句。刚开始接触Python的时候,我很疑惑为什么Python没有switch语句。后来想通了,因为Python的哲学崇尚简单实用。从Python之禅,也能窥见任何问题。应该有一个,最好只有一个。显而易见的解决方案是在没有switch...case语句的情况下,我们如何解决这类问题?使用if...elif...例如:ifcode==200:return"ok"elifcode==404:return"nofound"elifcode==500return"error"else:return"unknow"这段代码看起来很直观,但是略显罗嗦的是每一行都有一个code==xxx的表达式判断语句。因此,在一些Python最佳实践中,某些场景推荐使用字典。比如根据Whenavariablevaluereturnsdifferentresultsdata={200:"ok",404:"nofound",500:"error",}value=data.get(code,"unkonw")是一个很好的解决方案到繁琐的代码问题。下面看看Python3.10中如何使用switchcasehttp_code="418"matchhttp_code:case"200":print("OK")do_something_good()case"404":print("NotFound")do_something_bad()case"418":print("I'mateapot")make_coffee()case_:print("Codenotfound")类似于其他语言中的switchcase语法。增加了match关键字,比Java少了“break”关键字。Python从1991年发布到现在已经30年了,说实话,没有switchcase,丝毫不影响开发效率。3.10引入这种语法糖的时候,只能算是一个真正用在生产环境的无痛功能。也是5、6年后,除非后面有大版本发布,谁没事跟着你每年升级版本。要知道,现在还有很多旧系统还在运行Python2.x。我个人对这种语法糖水平的提高没有什么可兴奋的!如果你问我支持不支持,我一定支持,这样以后我也可以很自信的告诉别人,谁说Python不支持swtichcase...本文转载自微信公众号《Python之禅》,可通过以下二维码关注。转载本文请联系Python之禅公众号。