自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

開發(fā) 前端
Python3.10 新增了一個語法特性。就是最近一直被熱議的 switch-case 語句,我剛接觸Python的時候,也納悶Python咋個 switch 語句都沒有。

[[394505]]

Python3.10 新增了一個語法特性。

就是最近一直被熱議的 switch-case 語句

我剛接觸Python的時候,也納悶Python咋個 switch 語句都沒有。

后來想明白了, 因為Python的哲學(xué)里面推崇的是簡單實用,從Python之禪里面也能窺探一二

  1. 任何問題應(yīng)有一種 
  2. 且最好只有一種, 
  3. 顯而易見的解決方法 

在沒有 switch … case 語句的時候,我們都是怎么解決這種問題的呢?

用 if … elif…

例如:

  1. if code == 200: 
  2.     return "ok" 
  3. elif code == 404: 
  4.     return "no found" 
  5. elif code == 500 
  6.     return "error" 
  7. else
  8.     return "unknow" 

這段代碼看起來就很直觀,只是稍微啰嗦的地方就是每行都有code==xxx的表達式判斷語句

于是,在一些Python最佳實踐里面,某些場景就推薦用字典來實現(xiàn), 例如根據(jù)某個變量值返回不同的結(jié)果時

  1. data = { 
  2.     200: "ok"
  3.     404: "no found"
  4.     500: "error"
  5. value = data.get(code, "unkonw"

很好的解決的代碼繁瑣的問題。

我們再來看看Python3.10中的switch case 怎么用的

  1. http_code = "418" 
  2. match http_code: 
  3.     case "200"
  4.         print("OK"
  5.         do_something_good() 
  6.     case "404"
  7.         print("Not Found"
  8.         do_something_bad() 
  9.     case "418"
  10.         print("I'm a teapot"
  11.         make_coffee() 
  12.     case _: 
  13.         print("Code not found"

和其他語言中的switch case 語法差不多,新增了match 關(guān)鍵字,比Java少了“break”關(guān)鍵字。

Python從91年發(fā)布到今天經(jīng)歷了30個年頭

說真的,沒有 switch case 完全不影響開發(fā)效率,到3.10引入這么個語法糖出來,只能算是個不痛不癢的功能

真正用在生產(chǎn)環(huán)境,也是5、6年之后了,除非后面有重大版本的發(fā)布,誰沒事瞎折騰跟著你每年升級版本。

要知道,現(xiàn)在依然還有不少老系統(tǒng)還跑著Python2.x

我個人對這種語法糖層面的改進基本是沒啥可激動的!你要問我支不支持,我肯定支持,這樣以后我也可以理直氣壯地跟別人說,誰說Python不支持 swtich case....

本文轉(zhuǎn)載自微信公眾號「Python之禪」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系Python之禪公眾號。  

 

責任編輯:武曉燕 來源: Python之禪
相關(guān)推薦

2020-07-02 10:30:52

iPhone蘋果北斗

2022-04-26 10:13:00

哈希索引MySQLInnoDB

2020-10-09 06:48:19

Pythonswitch語句

2020-07-22 08:01:41

Python開發(fā)運算符

2021-02-01 13:53:53

StringlongJava

2011-12-09 20:28:50

2021-01-22 15:31:47

JavaSwitchString

2022-02-16 15:07:34

協(xié)程JavaQuasar

2010-06-24 17:42:08

服務(wù)不支持chkcon

2021-10-27 07:15:36

Go 循環(huán)引用

2020-10-20 07:13:44

Web動態(tài)化CSS

2019-10-11 08:44:38

InnoDB哈希索引MySQL

2020-07-09 09:56:48

Python語言開發(fā)

2021-12-09 10:51:47

Go繼承

2021-12-15 07:49:22

Go語言設(shè)計

2010-12-20 14:22:27

Nvidia英特爾Sandy Bridg

2010-06-24 17:37:59

服務(wù)不支持chkcon

2012-02-01 10:20:19

Firefox 10發(fā)布

2009-02-23 09:19:33

windows 7啟動畫面

2009-09-01 13:18:38

雪豹蘋果操作系統(tǒng)
點贊
收藏

51CTO技術(shù)棧公眾號