新聞中心
Python 是當今最流行的編程語言之一,已被廣泛用于各種領(lǐng)域和應用,從學習計算機科學的基礎(chǔ)知識到執(zhí)行復雜而直接的科學計算任務,再到構(gòu)建游戲,它的影子無處不在。Python 甚至應用于數(shù)據(jù)科學和量子計算等更高級的領(lǐng)域。

創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務,包含不限于成都網(wǎng)站建設、網(wǎng)站設計、太湖網(wǎng)絡推廣、小程序定制開發(fā)、太湖網(wǎng)絡營銷、太湖企業(yè)策劃、太湖品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)公司為所有大學生創(chuàng)業(yè)者提供太湖建站搭建服務,24小時服務熱線:18980820575,官方網(wǎng)址:www.cdcxhl.com
2020 年 11 月,Python 3.10 第二個 alpha 版本發(fā)布,在類型注釋擴展、zip、位計數(shù)、字典映射有了新的改進。今年 4 月,Python 3.10 beta 版發(fā)布,最大的亮點就是引入了 switch-case 語句。之后,Python 又陸續(xù)發(fā)布了幾個 beta 和 rc(Release Candidate)版本。
10 月 4 日,Python 官方終于發(fā)布了 Python 3.10 正式版。新版本中,Python 添加了一些獨特且有價值的特性,同時刪除了一些舊特性。有人總結(jié)出了 3.10 版本的三大重要特性,分別是:
- 更好的錯誤跟蹤;
- match-case 結(jié)構(gòu)模式匹配;
- 新型 Union 運算符。
法國學者 Thibault Clerice 表示,「隨著 Python 3.10 的發(fā)布,每個程序員都會愛上新的『結(jié)構(gòu)模式匹配』功能?!?/p>
對于 Python 3.10 的新特性,威斯康星大學麥迪遜分校統(tǒng)計學助理教授、暢銷書籍《Python Machine Learning》的作者 Sebastian Raschka 表示,「新特性中最令人興奮的是改進的錯誤信息提示,像缺少逗號或拼寫錯誤等小的錯誤,現(xiàn)在很容易被發(fā)現(xiàn)。」
此外,有網(wǎng)友表示,Python 3.10 已經(jīng)提供了適配 Linux 和 macOS 系統(tǒng)的 psycopg2 二進制包,但 Windows 系統(tǒng)尚未適配好。
慶應大學量子計算博士生 Sara A. Metwalli 更是撰文對 Python 3.10 的全新特性進行了全面的整理,總結(jié)出了以下六大新特性和附件組件。
Python 3.10 最新特性
特性 1:更好的錯誤跟蹤
作為一位每天使用 Python 編寫代碼的碼農(nóng),肯定沒少踩過語法錯誤的坑。雖然成熟的程序員可以熟練地掌握 Python 技巧,語法上的錯誤也能很好地修復,但有時我們希望得到更準確的錯誤消息,以幫助更好地定位錯誤,節(jié)省調(diào)試時間。
Python3.10 新增兩個特性,可以更好地處理錯誤,即更好的錯誤消息和用于調(diào)試的精確行號。以下列代碼為例,代碼中包含字典和函數(shù),然而這段代碼顯示沒有關(guān)閉字典。
- some_dict = {1: "jack", 2: "john", 3: "james" ,
- a_results = a_useful_function()
在之前的 Python 版本中,這個錯誤信息看起來像這樣:
但是,隨著 Python 3.10 的到來,新的錯誤消息和行編號的改進,能給碼農(nóng)帶來更好的錯誤消息,比如錯誤的確切類型及其確切的行號都能跟蹤。
Python 3.10 關(guān)于錯誤跟蹤新特性將有助于加快調(diào)試速度,并減少初學者挫敗感。
特性 2:引入結(jié)構(gòu)模式匹配
如果你已經(jīng)使用過 C++ 等其他編程語言,或許你會期待 Python 有 switch 語句,這樣就不必通過長的 if、 elif、 elif…. else 語句來完成任務。Python 3.10 的一個新特性是增加了結(jié)構(gòu)模式匹配,或者換句話說,增加了 match case 語句,它的語法如下:
- match subject:
- case
: - case
: - case
: - case _:
特性 3:新型 Union 運算符
盡管 Python 是一種動態(tài)類型的編程語言,但有一些方法可以使它的某些部分成為靜態(tài)類型。例如,如果你正在編寫一個函數(shù),并且屬性(attributes)的類型對于函數(shù)內(nèi)部的轉(zhuǎn)換非常重要。在以前的版本中,可以指定屬性的類型,例如:
- def func(num: int) -> int:
- return num + 5
但問題來了,如果你想接受兩種類型,則需要使用 Union 關(guān)鍵字:
- def func(num: Union[int, float]) -> Union[int, float]:
- return num + 5
在 Python 3.10 中,你可以在兩種類型中進行選擇,使用 | 運算符而不是 Union 來進行更直接的類型決策:
- def func(num: int | float) -> int | float:
- return num + 5
特性 4:Stricter Zipping
Python 中一個有趣的函數(shù)是 zip() 函數(shù),這是 Python 中的內(nèi)置函數(shù),允許組合和迭代來自多個序列的元素。在以前的版本中,你可以使用具有不同長度序列的 zip,但是現(xiàn)在引入了一個新的參數(shù) strict,用來檢查傳遞給 zip 函數(shù)的所有可迭代對象是否具有相同的長度。
特性 5:自動文本編碼
有時編碼會遇到這種情況,代碼在一臺機器上可以運行,但是在另一臺機器上會出錯。導致這種情況的原因很多,有些是文本編碼造成的。在 Python 的早期版本中,如果沒有顯式聲明編碼類型,選擇的本地編碼可能會導致代碼在其他計算機上出現(xiàn)錯誤。在新版本的 Python3.10 中,如果用戶打開沒有特定編碼類型的文本文件時,可以激活一個警告來通知用戶。
特性 6:異步迭代
異步編程是一種功能強大的高級編程范式,它自 Python 3.5 版以來一直是 Python 的一部分。在 Python 3.10 中,有兩個新的異步內(nèi)置函數(shù) aiter() 和 anext() 使代碼更具可讀性。
對于很多程序員來說,Python 可能是他們編程的選擇語言。Python 在眾多編程語言排行榜中也多次位居榜首,如 IEEE 2021 編程語言排名,Python 一騎絕塵,在總榜單以及其他幾個分榜單中依然牢牢占據(jù)第一名的位置。此次 Python 3.10 發(fā)布,必將為 Python 這門編程語言帶來更好的編程體驗。
【本文是專欄機構(gòu)“機器之心”的原創(chuàng)譯文,微信公眾號“機器之心( id: almosthuman2014)”】
本文標題:錯誤調(diào)試精確到行、match-case模式匹配……Python3.10真的很友好
網(wǎng)站鏈接:http://fisionsoft.com.cn/article/djieedp.html


咨詢
建站咨詢
