新聞中心
Python3.10 新增了一個(gè)語(yǔ)法特性。

創(chuàng)新互聯(lián)建站是一家專注于成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)與策劃設(shè)計(jì),蓬江網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)建站做網(wǎng)站,專注于網(wǎng)站建設(shè)十載,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:蓬江等地區(qū)。蓬江做網(wǎng)站價(jià)格咨詢:18982081108
就是最近一直被熱議的 switch-case 語(yǔ)句
我剛接觸Python的時(shí)候,也納悶Python咋個(gè) switch 語(yǔ)句都沒(méi)有。
后來(lái)想明白了, 因?yàn)镻ython的哲學(xué)里面推崇的是簡(jiǎn)單實(shí)用,從Python之禪里面也能窺探一二
- 任何問(wèn)題應(yīng)有一種
- 且最好只有一種,
- 顯而易見(jiàn)的解決方法
在沒(méi)有 switch … case 語(yǔ)句的時(shí)候,我們都是怎么解決這種問(wèn)題的呢?
用 if … elif…
例如:
- if code == 200:
- return "ok"
- elif code == 404:
- return "no found"
- elif code == 500
- return "error"
- else:
- return "unknow"
這段代碼看起來(lái)就很直觀,只是稍微啰嗦的地方就是每行都有code==xxx的表達(dá)式判斷語(yǔ)句
于是,在一些Python最佳實(shí)踐里面,某些場(chǎng)景就推薦用字典來(lái)實(shí)現(xiàn), 例如根據(jù)某個(gè)變量值返回不同的結(jié)果時(shí)
- data = {
- 200: "ok",
- 404: "no found",
- 500: "error",
- }
- value = data.get(code, "unkonw")
很好的解決的代碼繁瑣的問(wèn)題。
我們?cè)賮?lái)看看Python3.10中的switch case 怎么用的
- http_code = "418"
- match http_code:
- case "200":
- print("OK")
- do_something_good()
- case "404":
- print("Not Found")
- do_something_bad()
- case "418":
- print("I'm a teapot")
- make_coffee()
- case _:
- print("Code not found")
和其他語(yǔ)言中的switch case 語(yǔ)法差不多,新增了match 關(guān)鍵字,比Java少了“break”關(guān)鍵字。
Python從91年發(fā)布到今天經(jīng)歷了30個(gè)年頭
說(shuō)真的,沒(méi)有 switch case 完全不影響開(kāi)發(fā)效率,到3.10引入這么個(gè)語(yǔ)法糖出來(lái),只能算是個(gè)不痛不癢的功能
真正用在生產(chǎn)環(huán)境,也是5、6年之后了,除非后面有重大版本的發(fā)布,誰(shuí)沒(méi)事瞎折騰跟著你每年升級(jí)版本。
要知道,現(xiàn)在依然還有不少老系統(tǒng)還跑著Python2.x
我個(gè)人對(duì)這種語(yǔ)法糖層面的改進(jìn)基本是沒(méi)啥可激動(dòng)的!你要問(wèn)我支不支持,我肯定支持,這樣以后我也可以理直氣壯地跟別人說(shuō),誰(shuí)說(shuō)Python不支持 swtich case....
本文轉(zhuǎn)載自微信公眾號(hào)「Python之禪」,可以通過(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系Python之禪公眾號(hào)。
網(wǎng)頁(yè)標(biāo)題:Switch...Case語(yǔ)法你支不支持?
標(biāo)題URL:http://fisionsoft.com.cn/article/coicgdo.html


咨詢
建站咨詢
