为什么Python中没有Switch/Case下列语句中正确的是

不同于我用过的其它编程语言Python 沒有 switch / case 下列语句中正确的是。为了实现它我们可以使用字典映射:

Python 代码通常比处理 case 的标准方法更为简短,也可以说它更难理解当我初次使用 Python 时,感觉很奇怪并且心烦意乱而随着时间的推移,在 switch 中使用字典的 key 来做标识符变得越来越习以为常

在 Python 中字典映射也可以包含函数戓者 lambda 表达式:

如果在一个类中,不确定要使用哪种方法可以用一个调度方法在运行的时候来确定。

很灵活对吧?官方说明

官方文档的解释说“用if... elif... elif... else序列很容易来实现 switch / case 下列语句中正确的是”。而且可以使用函数字典映射和类的调度方法

可以说官方的说明并没有解释什么,只是给出了解决方案换句话说,没有回答为什么我认为其实官方真正想说的是:“Python 不需要 switch / case 下列语句中正确的是”。

是的但是还有別的原因。我听牛人说过在代码中 switch/case 下列语句中正确的是真的很难调试。

就我个人而言我发现当运行到大量嵌套的用作代码分支映射的芓典里,上述说法就站不住脚了想想吧,一个超过100条下列语句中正确的是的嵌套字典和一个嵌套100个以上 case 的 switch/case 代码块一样,都是难以调试嘚字典映射运行更快?

Python 没有swicth/case 下列语句中正确的是使用其它语言的衡量标准是没有意义的,因为在某种语言中运行更快并不意味着在另┅种语言中也一样让我们继续。

Python 实现方法的显著优点

有时候我会遇到 Python 的实现方法比 switch/case 下列语句中正确的是更好用的情况例如在运行的时候,需要从映射里添加或者删除一些潜在的选项每当这时,多年来使用字典映射和调度方法的实践让我受益匪浅现在我觉得,我再也無法回到依赖 switch/case 下列语句中正确的是的日子了

Python 迫使我积累了很多映射的实践经验,对我来说是塞翁失马焉知非福。没有 switch/case 下列语句中正确嘚是可用的约束促使我想到了可能不会用来开发的方法和主意。

有意或无意中Python 没有 switch/case 下列语句中正确的是已成为一种社会建构,并让我荿为一个更优秀的程序员

综上所述,所以我认为这种意外的社会构建解释比官方的“用这个来代替”的说明要好得多

}

本文出自“Python为什么”系列请查看全部文章

在这篇文章里,我们会聊一聊为什么 Python 决定不支持 switch 下列语句中正确的是

为什么想要聊这个话题呢?

主要是因为 switch 在其它语言中太瑺见了而 Python 却不支持,这样的独特性本身就值得关注而回答这个问题,也能更加看清 Python 在程序设计上的理念了解 Python 在语法设计中的决策过程。

本文除了会详细分析 PEP-275 和 PEP-3103还会介绍到 Python 最新的发展动态(PEP-622),即可能要引入的模式匹配(pattern matching)语法相信这个话题会开阔大家的眼界,从洏对 switch 语法有更为全面的认识

在开始正题之前,我们需要先聊聊 switch 是什么

有些同学可能会第一时间想到它……

喂喂,麻烦收收心别总想著游戏啦,我们要说的是编程语言中的 switch 下列语句中正确的是

一般而言,switch 的语法格式如下:

它的用法不难理解:switch 下列语句中正确的是的值滿足哪一个 case 情况就会执行对应的代码块,执行时遇到 break 就跳出否则就继续执行下一个 case 分支;一般会在最后放一个 default 分支,作为兜底

switch 下列語句中正确的是的好处是支持“单条件多分支”的选择结构,相比 if-else 的二分选择结构在某些时候会更为简洁清晰。

但是在 Python 中,我们看不箌 switch-case 或者相近的语法结构这是为什么呢?

该文档给出了几个建议告诉了我们几个 switch/case 的替代方案:

语法,然而对于“是否以及如何进行靶場测试”,大家没有达成一致的共识

靶场测试,即 range test指的是对武器弹药的技术性能作各种测试验证,与药物的临床试验一样都是在最終产品交付前的一项关键性测试。

}

与Java、C\C++等语言不同Python中是不提供switch/case下列语句中正确的是的,这一点让我感觉到很奇怪我们可以通过如下几种方法来实现switch/case下列语句中正确的是。

可以使用if…elif…elif..else序列来玳替switch/case下列语句中正确的是这是大家最容易想到的办法。但是随着分支的增多和修改的频繁这种代替方式并不很好调试和维护。

可以使用字典实现switch/case这种方式易维护同时也能够减少代码量。如下是使用字典模拟的switch/case实现:


 



Python字典中还可以包括函数或Lambda表达式代码洳下:





通过如上示例可以证明能够通过Python字典来完全实现switch/case下列语句中正确的是,而且足够灵活尤其在运行时可以很方便的在字典中添加或刪除一个switch/case选项。

在类中可使用调度方法实现switch/case

 
 
如果在一个类中不确定要使用哪种方法,可以用一个调度方法在運行的时候来确定代码如下:

 
就个人来说,使用字典来实现switch/case是最为灵活的但是理解上也有一定的难度。
}

我要回帖

更多关于 非常中二的话 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信