Python 3.10 正式發(fā)布!全新六大特點解析!
來源:
奇酷教育 發(fā)表于:
Python 3 10 正式發(fā)布!全新六大特點解析!
2021年10月4日 Python 終于正式發(fā)布了 3.10 版本。
全新六大特點
match和case 語法
更嚴(yán)謹(jǐn)?shù)?zip
新的類型標(biāo)注特性
重要的棄用、移除或限制,如PEP 632,棄用 distutils 模塊
新的特性:帶圓括號的上下文管理器
更友好的報錯提示
01
全新六大特點
1 match和case 語法
Python 3.10 這個版本,最受關(guān)注的應(yīng)該就是 結(jié)構(gòu)模式匹配 —— match-case。
下邊是最簡單的一個 match-case 的例子,看起來是不是非常的直觀簡潔?
def http_error(status):
match status:
case 400:
print("Bad request")
case 404:
print("Not found")
case 418:
print("I m a teapot")
case _:
print("Something s wrong with the internet")
return "Something's wrong with the Internet"
你看,與C++的switch和case用法是完全一樣的!
2 更嚴(yán)謹(jǐn)?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)
3.10以后增加一個布爾類型參數(shù)strict,默認(rèn)為False
zip(*iterables, strict=False)
只有當(dāng)其為True時,打包的可迭代對象長度不一致時會拋異常;當(dāng)為False時,與之前版本的zip完全相同,因此zip是完全向后兼容的。
3 帶括號的上下文管理器
with可以加括號了,例如
4 更友好的報錯提示
當(dāng)你的括號、引號未閉合時,python會拋出更加清晰明了的錯誤
?。ū疚膮⒖甲?Python官方文檔 : Python Release Python 3.10.0 | Python.org)