Python 3.10來了,switch語(yǔ)法終于出現(xiàn)
轉(zhuǎn)自:機(jī)器之心
對(duì)于從事數(shù)據(jù)科學(xué)和人工智能領(lǐng)域的人們來說,Python 是大家的首選編程語(yǔ)言。根據(jù)最近的一項(xiàng)調(diào)查,27% 的程序員開發(fā)職位要求掌握 Python 語(yǔ)言,今年年初這一數(shù)字還只是 18.5%。
Python 流行的原因在于其擁有非常直觀的能力:這門語(yǔ)言擁有大量的庫(kù)、足夠高的生產(chǎn)效率,還相對(duì)易于學(xué)習(xí)。去年 10 月,Python 的 3.9 版正式發(fā)布了,從字典更新 / 合并到添加新的字符串方法,再到 zoneinfo 庫(kù)的引入,Python 3.9 添加了許多新特性.
Python3.10 的第二個(gè) alpha 版本也已于去年 11 月初發(fā)布,相比于不久前發(fā)布的 3.9 版本,新版本對(duì)類型注釋擴(kuò)展、zip、位計(jì)數(shù)、字典映射又有了新的改進(jìn)。就在昨天,Python 3.10 beta 版發(fā)布了,新的 beta 版最大的亮點(diǎn)可能就是引入了 switch-case 語(yǔ)句。
Python 3.10 beta 版新改進(jìn)
Switch 語(yǔ)句存在于很多編程語(yǔ)言中,但 Python 編程語(yǔ)言不支持 Switch 語(yǔ)句。早在 2016 年,PEP 3103 就被提出,建議 Python 支持 switch-case 語(yǔ)句。然而,在調(diào)查中發(fā)現(xiàn)很少人支持該特性,Python 開發(fā)人員放棄了它。
時(shí)間在推到 2020 年,Python 的創(chuàng)始人 Guido van Rossum,提交了顯示 switch 語(yǔ)句的第一個(gè)文檔,命名為 Structural Pattern Matching,見 PEP 634 。
如今,隨著 Python 3.10 beta 版的發(fā)布,終于將 switch-case 語(yǔ)句納入其中。
帶圓括號(hào)的上下文管理器:現(xiàn)在支持在上下文管理器中跨多行使用括號(hào)進(jìn)行延續(xù)。也可以在所包含組的末尾使用逗號(hào)。
with (
CtxManager1() as example1,
CtxManager2() as example2,
CtxManager3() as example3,
):
...

match subject:
case <pattern_1>:
<action_1>
case <pattern_2>:
<action_2>
case <pattern_3>:
<action_3>
case _:
<action_wildcard>
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")

http_code = "418"
if http_code == "418":
print("OK")
do_something_good()
elif http_code == "404":
print("Not Found")
do_something_bad()
elif http_code == "418"
print("I'm a teapot")
make_coffee()
else:
print("Code not found")
猜您喜歡:
等你著陸!【GAN生成對(duì)抗網(wǎng)絡(luò)】知識(shí)星球!
附下載 | 經(jīng)典《Think Python》中文版
附下載 | 《Pytorch模型訓(xùn)練實(shí)用教程》
附下載 | 最新2020李沐《動(dòng)手學(xué)深度學(xué)習(xí)》
附下載 | 《可解釋的機(jī)器學(xué)習(xí)》中文版
附下載 |《TensorFlow 2.0 深度學(xué)習(xí)算法實(shí)戰(zhàn)》
