您现在的位置是:首页 > 文章详情

想学Python高级编程?必须了解这个小技巧:match-case!

日期:2023-07-29点击:184

大家好,这里是程序员晚枫,小破站/知乎/小红书/抖音都叫这个名字。

上次给大家分享了Python高级编程第一讲:从使用类型提示开始 ;今天分享Python高级编程第二讲:深入解析Python中switch case的使用方法

写在前面

分享之前,先说几点注意事项:

  • Python对switch case的支持,来自PEP634,如下图所示。
  • Python对switch case的支持,是通过match case实现的。语法稍有不同,作用完全一致。
  • 经过测试,Python对switch case的支持是从3.10开始的,网上有部分文章说是3.11才开始支持是错误的。

代码演示

如下代码所示,在没有match case之前,我们通常是通过if else做匹配的。

然而,随着编程语言的不断发展,现在很多语言都已经提供了更加方便和高效的匹配方式,例如Swift语言中的switch语句。switch语句不仅可以匹配基本数据类型,还可以匹配枚举类型、元组等更加复杂的数据结构。

而且,使用switch语句的可读性和可维护性也更好,代码量更少。

因此,如果你使用的编程语言支持switch语句,建议在匹配时优先考虑使用它。当然,在某些情况下,if else也可以更好地解决问题,关键是根据具体情况选择最合适的匹配方式。

总之,无论是if else还是switch,都需要掌握它们的使用方法,以便在实际编程中灵活运用。

 def select_platform(name): if name == "小破站": print(f"程序员晚枫的{name}账号名称是:程序员晚枫") elif name == "Z乎": print(f"程序员晚枫的{name}账号名称是:程序员晚枫") elif name == "小红薯": print( f"程序员晚枫的{name}账号名称是:程序员晚枫") else: print(f"程序员晚枫的默认账号名称是:程序员晚枫") select_platform("小破站") # Output: 程序员晚枫的小破站账号名称是:程序员晚枫 

有了match case之后,我们可以这样做匹配:

 def select_platform(name): match name: case "小破站": print(f"程序员晚枫的{name}账号名称是:程序员晚枫") case "Z乎": print(f"程序员晚枫的{name}账号名称是:程序员晚枫") case "小红薯": print( f"程序员晚枫的{name}账号名称是:程序员晚枫") case _: print(f"程序员晚枫的默认账号名称是:程序员晚枫") select_platform("小破站") # Output: 程序员晚枫的小破站账号名称是:程序员晚枫 select_platform("Z乎") # Output: 程序员晚枫的Z乎账号名称是:程序员晚枫 

写在最后

这个新特性的效率怎么样呢?我查询了网上众多大佬的测评,初步结论是:很遗憾,它的效率低于if-else。

然而,我们不能完全否定这个新特性的价值。虽然相对于if-else,它的效率略低,但是在某些情况下,它可以提高代码的可读性和简洁性,从而减少错误和提高开发效率。此外,这个新特性还可以有效地避免一些常见的编程错误。

因此,我们需要在实际开发中综合考虑各种因素,选择最适合自己项目的编程风格和技术方案,以达到更好的开发效果和用户体验。

你会把这个新特性用在自己的项目里吗?在评论区写下你的答案吧~

原文链接:https://my.oschina.net/u/3888978/blog/10091682
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章