剛剛,Python3.10 正式發(fā)布了!終于增加了這個功能...
你好,我是 zhenguo
通過官網(wǎng)看到,Python 3.10 剛剛正式發(fā)布了!

我說兩個新增的很香的功能,一個關(guān)于語法,另一個關(guān)于標注庫里的函數(shù)。
1 match和case 語法
熟悉 C++ 的程序員對于switch和case不會陌生,但是對于Python 3.10以前,很遺憾,Python一直沒有類似的語法,不過自從3.10開始Python終于有類似語法了!是 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 更嚴謹?shù)?zip
zip打包多個可迭代對象,配合for后接下來的操作以元組為基本單位,但是有一個有些致命的隱含問題,如下兩個列表a,b 長度不一致,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')
為了解決這個問題,zip添加了一個布爾類型的參數(shù)?strict,這個變化也就是:
3.10以前zip的原型:
zip(*iterables)
strict,默認為Falsezip(*iterables,?strict=False)
新的類型標注特性 重要的棄用、移除或限制,如PEP 632,棄用 distutils 模塊。 新的特性:帶圓括號的上下文管理器 更清楚的錯誤消息
評論
圖片
表情
