ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python中的切换案例?发现 MatchCase

2022-09-14 00:32:21  阅读:219  来源: 互联网

标签:Python 代码 相符 MatchCase 案例 切换 比萨 我们


Python中的切换案例?发现 MatchCase

Fonte: 不飞溅

很长一段时间以来,许多迁移到 Python 语言的程序员的疑问是对功能的支持 开关盒 ,在Java、C#和C++等语言中广为人知。直到 2021 年年中,Python 本身并没有类似的东西,但是,情况发生了变化,在新的 Python 更新中,在 3.10 版中,支持此功能——名称不同,但原理相同。在本文中,我们将发现 相符 , 的替代语法 如果别的 对于条件结构。

匹配案例语法

假设我们的开发团队必须为一家比萨店编写代码,我们的目标是返回三种最畅销的比萨口味的原料:葡萄牙、玛格丽塔和拿波利塔纳。为此,我们可以想到一个简单的条件结构 如果别的 , 如下所示:

在上面的代码中,我们总是重复这句话 风味==披萨名称 ,这使得代码重复。当然,我们只进行了三个比较,但可能会有二十、三十、五十个案例,对于所有这些情况,我们都必须重复相同的比较,但是请注意,所有这些条件都大致相同场景,即比萨饼的味道,所以不针对每个条件重复场景会很有趣。现在见面, 相符

在代码中,没有必要重复类似的比较 风味==披萨名称 对于每个场景。相反, 相符 为代码添加了更多的优雅和简洁。

你的语法 工作方式如下:

  • 这个单词 匹配 伴随着一个变量来评估其值。在这种情况下,我们定义将被评估的场景的上下文。
  • 然后我们在下面定义每种情况( 案子 )我们期望:案例( 案子 ) 在 匹配 成为这个值,做这个。

返回默认值

但你一定在想:如果没有列出的案例怎么办?如何告诉火柴盒? Python 有一个简单但非常强大的特性,那就是 下划线:_ , 他的意思 任何 , 可以和指令一起使用 案子 定义如果不满足任何条件,则 标准值 .我们正在为其开发此代码的比萨店希望未注册比萨的默认值是 “不明成分” .适应代码,我们有:

为什么创建它?

到目前为止,我们已经看到 相符 非常类似于条件结构 如果别的 ,但是,更优雅一点。但是,创建此资源的动机远不止于此,它旨在使代码更清晰、更易读、更符合函数式编程,并简化项目模式的实现,例如 游客 .按照 表现 ,在幕后,这个结构在运行时工作很像 如果别的 , 但不同之处在于它支持更复杂的条件的详细说明,当使用 如果别的 使代码更冗长,在极端情况下使用 代码气味 .

高级功能

除了使语法 如果别的 更具可读性, 相符 为我们提供了一系列可能性,我们可以将其用于:

  • 类似案例
  • 在列表中并使用通配符
  • 模式和子模式捕获
  • 在类对象中

类似案例

比萨店向我们的开发团队报告,Pizza Marguerita 也被很多客户称为 Margarida,并要求我们在代码中添加这个功能,即当客户说 Marguerita 或者 黛西,必须退回相同的成分。在某些情况下,其中 多次验证的返回值相同 ,我们可以将这些场景组合成一个 案子 通过性格 “|” (管道), 这意味着 或者 .下面是它在代码中的样子:

列表和通配符

比萨店要求的另一个功能是顾客可以选择他的比萨的配料,所以,如果说出顾客的姓名和配料,物品将被退回,以便他确认订单。使用 相符 ,我们可以使用一个列表来做这个检查,甚至可以使用星号通配符 (*) 拆开清单,因为披萨可以有一种或多种成分:

案例和条件

我们可以加入案例和 如果 为了寻找更复杂的检查,所以,回到客户列出比萨配料的场景,如果有,我们只会确认订单 “番茄” 在他要求的项目上,我们可以这样做:

类对象

让我们创建一个类来定义比萨不可缺少的成分是:

现在,让我们为 Pizza 类创建一些对象:

我们的 相符 类将如下所示:

使用哪种方法:Ifs 还是 Match Case?

我知道你已经想到了答案,如果你想到 “要看” , 你是对的。但让我们超越 “要看” .

您是否同意在编程中有几种方法可以达到结果?但是最好的方法是什么?

这取决于我们,程序员,而不是捍卫一种方法,要知道 什么是正确使用的工具 什么时候是最好的时间。就好像我们有一个行李箱,里面有几件衣服可以在旅行中使用,但是如果我们要去海滩,就不适合从行李箱中脱掉我们的保暖外套。在 Match Case 的情况下,它用于更复杂的结构,当使用多个结构时 如果别的 ,代码往往很复杂,不可读。做简单的比较,比如比萨店,继续保持我们的好老头没关系 如果别的 .最后,它总是取决于具体情况,取决于你必须解决它的场景,但评估可能性并担心你编写的代码总是好的,为此,重要的是了解新功能,它们的

结论

我们在本文中了解了匹配案例语法、动机和复杂用例。希望你喜欢这篇文章。感谢您阅读到这里!下次见。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/35134/17531400

标签:Python,代码,相符,MatchCase,案例,切换,比萨,我们
来源: https://www.cnblogs.com/amboke/p/16691524.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有