Python 3.10版本新增了哪些功能?


在本文中,我們將學習Python 3.10相比於3.9的新功能。讓我們看看這些功能:

帶括號的上下文管理器

現在支援在上下文管理器中使用括號來跨多行延續。這允許以類似於以前在import語句中可能的方式,將長上下文管理器的集合格式化成多行。

使用者定義的型別守衛

TypeGuard已新增到typing模組中,用於註釋型別守衛函式,並在型別縮小期間為靜態型別檢查器提供更多資訊。

改進的錯誤訊息

如果執行Python程式時出現錯誤,錯誤訊息現在將更加準確,並提供確切的錯誤資訊。

SyntaxError(語法錯誤)

當解析包含未關閉的括號或方括號的程式碼時,直譯器現在將包含未關閉括號或方括號的位置,而不是顯示SyntaxError: unexpected EOF while parsing或指向某些不正確的位置。

直譯器引發的SyntaxError異常現在將突出顯示構成語法錯誤本身的表示式的完整錯誤範圍,而不是僅突出顯示檢測到問題的位置。

IndentationError(縮排錯誤)

許多IndentationError異常現在包含更多關於什麼型別的塊需要縮排的上下文資訊。

精確的行號用於除錯

更精確和可靠的行號用於除錯、效能分析和程式碼覆蓋工具。跟蹤事件(帶有正確的行號)將為所有執行的程式碼行生成,並且僅為執行的程式碼行生成。

結構化模式匹配

結構化模式匹配已以match語句和具有關聯操作的case語句模式的形式新增。模式由序列、對映、原始資料型別以及類例項組成。模式匹配使程式能夠從複雜的資料型別中提取資訊,根據資料結構進行分支,並根據不同形式的資料應用特定操作。

增強的模組

以下模組透過新功能、新方法等進行了增強。

array − array.array的index()方法現在具有可選的start和stop引數。

base64 − 添加了base64.b32hexencode()和base64.b32hexdecode()以支援帶有擴充套件十六進位制字母表的Base32編碼。

bisect − 為bisect模組中的API添加了提供鍵函式的可能性。

contextlib − 添加了一個contextlib.aclosing()上下文管理器,以安全地關閉非同步生成器和表示非同步釋放資源的物件。

distutils − distutils包已棄用,將在Python 3.12中移除。

encodings − encodings.normalize_encoding()現在忽略非ASCII字元。

更新於:2022年9月16日

瀏覽量:207

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告