Python 3.10 中 6 個興奮的新特性
新的 Python 版本推出瞭有趣的新功能。
Python 是當今最流行的編程語言之一。它有廣泛的領域和應用,從學習計算機科學的基礎,到執行復雜或者直接的科學計算任務來創建遊戲。它的高級應用甚至包含數據科學和量子計算。
Python的流行有很多原因。其中最主要的原因是Python和其他語言相比,通用性強,簡單易學。除此之外,Python的開發和維護者——Python軟件基金會——一直致力於用新的方法改進Python。
一周之前(2021年10月4日),一個新的Python版本發佈瞭,Python 3.10。在新的版本中,Python 添加瞭獨特且有價值的功能,同時刪除瞭一些舊功能。我們可以將任何新軟件版本中添加或刪除的功能歸為多個類別,例如語法特性、添加到默認庫或對現有特性的改進。
Python 3.10 有幾個新的很酷的功能,使得使用 Python 成為一種更好的體驗。在本文中,我將與您分享 6 個讓我最興奮的新特性。
更清楚的錯誤追蹤
作為一個每天寫Python 、教Python 的人,我深知遇到語法錯誤的挫敗感。盡管一旦你掌握瞭Python和編程,就很容易修復語法錯誤,但是我們還是希望錯誤消息能給我們更好的提示,以幫助我們更好地定位錯誤並節省調試時間。
在Python 3.10中,兩個新特性使得我們可以更好地處理錯誤,他們是更清楚地錯誤消息以及精確的行號。比如,我們有以下代碼,包含一個字典和一個函數。但是我們忘記瞭字典結束的花括號“}”。
some_dict = {1: "jack", 2: "john", 3: "james" , a_results = a_useful_function()
在之前的Python版本中,錯誤信息如下:
File “amazing_code.py”,
line 3 a_results = a_useful_function()
^ SyntaxError: invalid syntax # 無效的語法
但是,隨著新的錯誤消息和行號的改進,新的錯誤消息將包含更好的信息,例如準確的錯誤類型和精確的行號。
File "amazing_code.py", line 1 expected = {1: "jack", 2: "john", 3: "james" , ^ SyntaxError: '{' was never closed # 未關閉的 “ { ”
這一新特性將有助於加快調試速度,並減少人們開始學習 Python 的挫敗感。
結構化模式匹配
如果您使用過 C++ 等其他編程語言,您可能希望 Python 有 switch 語句,這樣您就不必經歷冗長的 if、elif、elif、…、else 語句。好吧,Python 3.10 的新特性之一是添加瞭結構化模式匹配,或者換句話說,具有以下語法的 switch、case 語句。
match subject: case <patt1>: <act1> case <patt2>: <act2> case <patt3>: <act3> case _: <action_default>
新的類型聯合運算符
盡管 Python 是一種動態類型的編程語言,但還是有一些方法可以使它的某些部分成為靜態類型的。比如,你正在寫一個函數,而屬性的類型對於函數的內部通信很重要。在之前的版本中,你可以指定類型如下:
def func(num: int) -> int: return num + 5
但是,如果你要接受兩種類型,你就需要使用Union關鍵字。
def func(num: Union[int, float]) -> Union[int, float]: return num + 5
在新版Python中,你可以用“|”運算符替代Union關鍵字,這樣會更直接。
def func(num: int | float) -> int | float: return num + 5
其他很酷的特性
4.1 更嚴格的zip
Python的樂趣之一就是zip()函數。它是一個內置函數,允許你同時遍歷多個序列,並組合其返回值。在之前的版本中,你可以對不同長度的序列使用zip。但是,現在有瞭一個新的參數,strict,用來檢查可遍歷對象是否長度一致。
4.2 自動文本編碼
作為程序員,我們會說,“他在我的電腦上能運行的”。代碼在一臺機器上運行而不在另一臺機器上運行的原因有很多;文本編碼可能會導致此類錯誤。
在以前的 Python 版本中,如果沒有明確說明編碼類型,首選的本地編碼可能會導致代碼在其他機器上失敗。在 Python 3.10 中,可以激活警告以通知用戶打開文本文件沒有指定編碼類型。
4.3 異步迭代
異步編程是一個強大而先進的編程范式,它從 3.5 版開始就成為 Python 的一部分。在Python 3.10,有兩個新的異步的內置功能aiter()和anext()使你的代碼更易讀。
最後的想法
當我攻讀本科學位時,我參加瞭幾門使用 C++ 或 Java 編寫代碼和實現應用程序的課程。但是,當我要寫畢業論文時,我決定學習和使用 Python。那是差不多十年前的事瞭,我再也沒有回頭;每當我解決問題時,Python就成瞭我首選的編程語言。
後來,我開始教授兒童計算機科學。我意識到 Python 正激勵年輕一代從事技術職業。除瞭容易讀寫,容易上手,我最喜歡Python的一點是Python軟件基金會的努力工作,保持Python與時俱進。
Python的每個版本,都帶來瞭不起的新特性。這些特性是大部分Python程序員需要的,能讓我們高效寫Python代碼。總之,它們讓人們寫代碼更容易。本文中,我分享瞭讓我和我的學生興奮的Python 3.10的六個新特性。
參考鏈接
https://towardsdatascience.com/6-new-awesome-features-in-python-3-10-a0598e87689f
https://docs.python.org/3/whatsnew/3.10.html
https://docs.python.org/zh-cn/3/whatsnew/3.10.html
到此這篇關於Python 3.10 中的 6 個新特性,你體驗瞭嗎?的文章就介紹到這瞭,更多相關Python 3.10新特性內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Python3.10和Python3.9版本之間的差異介紹
- Go語言函數的延遲調用(Deferred Code)詳解
- 深入理解最新Python中的Match Case
- python如何調用php文件中的函數詳解
- Python語法詳解之decorator裝飾器