【Python】剛剛,Python3.10 正式發(fā)布了!終于增加了這個(gè)功能...
通過(guò)官網(wǎng)看到,Python 3.10 剛剛正式發(fā)布了!

我說(shuō)兩個(gè)新增的很香的功能,一個(gè)關(guān)于語(yǔ)法,另一個(gè)關(guān)于標(biāo)注庫(kù)里的函數(shù)。
1 match和case 語(yǔ)法
熟悉 C++ 的程序員對(duì)于switch和case不會(huì)陌生,但是對(duì)于Python 3.10以前,很遺憾,Python一直沒(méi)有類似的語(yǔ)法,不過(guò)自從3.10開(kāi)始Python終于有類似語(yǔ)法了!是 match和case,舉例如下:
def?http_error(status):
????match?status:
????????case?400:
????????????return?"Bad?request"
????????case?401?|?403?|?404:
????????????return?"Not?allowed"
????????case?404:
????????????return?"Not?found"
????????case?418:
????????????return?"I'm?a?teapot"
????????case?_:
????????????return?"Something's?wrong?with?the?Internet"
你看,與C++的switch和case用法是完全一樣的!
2 更嚴(yán)謹(jǐn)?shù)?zip
zip打包多個(gè)可迭代對(duì)象,配合for后接下來(lái)的操作以元組為基本單位,但是有一個(gè)有些致命的隱含問(wèn)題,如下兩個(gè)列表a,b 長(zhǎng)度不一致,zip后丟失了a的元素 3:
In?[43]:?a=[1,2,3]??????????????????????????????????????????????????????????????
In?[44]:?b=['a','b']????????????????????????????????????????????????????????????
In?[45]:?for?i?in?zip(a,b):?
????...:?????print(i)?
????...:????????????????????????????????????????????????????????????????????????
(1,?'a')
(2,?'b')
為了解決這個(gè)問(wèn)題,zip添加了一個(gè)布爾類型的參數(shù)?strict,這個(gè)變化也就是:
3.10以前zip的原型:
zip(*iterables)
strict,默認(rèn)為Falsezip(*iterables,?strict=False)
新的類型標(biāo)注特性 重要的棄用、移除或限制,如PEP 632,棄用 distutils 模塊。 新的特性:帶圓括號(hào)的上下文管理器 更清楚的錯(cuò)誤消息 往期精彩回顧 本站qq群851320808,加入微信群請(qǐng)掃碼:
評(píng)論
圖片
表情
