自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

錯誤調試精確到行、match-case模式匹配……Python 3.10真的很友好

開發(fā) 開發(fā)工具 后端
幾天前,Python 3.10 正式版終于發(fā)布了。這次,想必每個程序員都會愛上它。

  

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

2020 年 11 月,Python 3.10 第二個 alpha 版本發(fā)布,在類型注釋擴展、zip、位計數、字典映射有了新的改進。今年 4 月,Python 3.10 beta 版發(fā)布,最大的亮點就是引入了 switch-case 語句。之后,Python 又陸續(xù)發(fā)布了幾個 beta 和 rc(Release Candidate)版本。

10 月 4 日,Python 官方終于發(fā)布了 Python 3.10 正式版。新版本中,Python 添加了一些獨特且有價值的特性,同時刪除了一些舊特性。有人總結出了 3.10 版本的三大重要特性,分別是:

  • 更好的錯誤跟蹤;
  • match-case 結構模式匹配;
  • 新型 Union 運算符。
錯誤調試精確到行、match-case模式匹配……Python 3.10真的很友好

法國學者 Thibault Clerice 表示,「隨著 Python 3.10 的發(fā)布,每個程序員都會愛上新的『結構模式匹配』功能?!?/p>

錯誤調試精確到行、match-case模式匹配……Python 3.10真的很友好

對于 Python 3.10 的新特性,威斯康星大學麥迪遜分校統(tǒng)計學助理教授、暢銷書籍《Python Machine Learning》的作者 Sebastian Raschka 表示,「新特性中最令人興奮的是改進的錯誤信息提示,像缺少逗號或拼寫錯誤等小的錯誤,現在很容易被發(fā)現。」

錯誤調試精確到行、match-case模式匹配……Python 3.10真的很友好

此外,有網友表示,Python 3.10 已經提供了適配 Linux 和 macOS 系統(tǒng)的 psycopg2 二進制包,但 Windows 系統(tǒng)尚未適配好。

錯誤調試精確到行、match-case模式匹配……Python 3.10真的很友好

慶應大學量子計算博士生 Sara A. Metwalli 更是撰文對 Python 3.10 的全新特性進行了全面的整理,總結出了以下六大新特性和附件組件。

Python 3.10 最新特性

錯誤調試精確到行、match-case模式匹配……Python 3.10真的很友好

特性 1:更好的錯誤跟蹤

作為一位每天使用 Python 編寫代碼的碼農,肯定沒少踩過語法錯誤的坑。雖然成熟的程序員可以熟練地掌握 Python 技巧,語法上的錯誤也能很好地修復,但有時我們希望得到更準確的錯誤消息,以幫助更好地定位錯誤,節(jié)省調試時間。

Python3.10 新增兩個特性,可以更好地處理錯誤,即更好的錯誤消息和用于調試的精確行號。以下列代碼為例,代碼中包含字典和函數,然而這段代碼顯示沒有關閉字典。

  1. some_dict = {1"jack"2"john"3"james" , 
  2. a_results = a_useful_function() 

在之前的 Python 版本中,這個錯誤信息看起來像這樣:

錯誤調試精確到行、match-case模式匹配……Python 3.10真的很友好

但是,隨著 Python 3.10 的到來,新的錯誤消息和行編號的改進,能給碼農帶來更好的錯誤消息,比如錯誤的確切類型及其確切的行號都能跟蹤。

錯誤調試精確到行、match-case模式匹配……Python 3.10真的很友好

Python 3.10 關于錯誤跟蹤新特性將有助于加快調試速度,并減少初學者挫敗感。

特性 2:引入結構模式匹配

如果你已經使用過 C++ 等其他編程語言,或許你會期待 Python 有 switch 語句,這樣就不必通過長的 if、 elif、 elif…. else 語句來完成任務。Python 3.10 的一個新特性是增加了結構模式匹配,或者換句話說,增加了 match case 語句,它的語法如下:

  1. match subject: 
  2.     case <patt1>: 
  3.         <act1> 
  4.     case <patt2>: 
  5.         <act2> 
  6.     case <patt3>: 
  7.         <act3> 
  8.     case _: 
  9.         <action_default> 

特性 3:新型 Union 運算符

盡管 Python 是一種動態(tài)類型的編程語言,但有一些方法可以使它的某些部分成為靜態(tài)類型。例如,如果你正在編寫一個函數,并且屬性(attributes)的類型對于函數內部的轉換非常重要。在以前的版本中,可以指定屬性的類型,例如:

  1. def func(num: int) -> int
  2.  return num + 5 

但問題來了,如果你想接受兩種類型,則需要使用 Union 關鍵字:

  1. def func(num: Union[intfloat]) -> Union[intfloat]: 
  2.  return num + 5 

在 Python 3.10 中,你可以在兩種類型中進行選擇,使用 | 運算符而不是 Union 來進行更直接的類型決策:

  1. def func(num: int | float) -> int | float
  2.  return num + 5 

特性 4:Stricter Zipping

Python 中一個有趣的函數是 zip() 函數,這是 Python 中的內置函數,允許組合和迭代來自多個序列的元素。在以前的版本中,你可以使用具有不同長度序列的 zip,但是現在引入了一個新的參數 strict,用來檢查傳遞給 zip 函數的所有可迭代對象是否具有相同的長度。

特性 5:自動文本編碼

有時編碼會遇到這種情況,代碼在一臺機器上可以運行,但是在另一臺機器上會出錯。導致這種情況的原因很多,有些是文本編碼造成的。在 Python 的早期版本中,如果沒有顯式聲明編碼類型,首選的本地編碼可能會導致代碼在其他計算機上出現錯誤。在新版本的 Python3.10 中,如果用戶打開沒有特定編碼類型的文本文件時,可以激活一個警告來通知用戶。

特性 6:異步迭代

異步編程是一種功能強大的高級編程范式,它自 Python 3.5 版以來一直是 Python 的一部分。在 Python 3.10 中,有兩個新的異步內置函數 aiter() 和 anext() 使代碼更具可讀性。

對于很多程序員來說,Python 可能是他們編程的首選語言。Python 在眾多編程語言排行榜中也多次位居榜首,如 IEEE 2021 編程語言排名,Python 一騎絕塵,在總榜單以及其他幾個分榜單中依然牢牢占據第一名的位置。此次 Python 3.10 發(fā)布,必將為 Python 這門編程語言帶來更好的編程體驗。

【本文是51CTO專欄機構“機器之心”的原創(chuàng)譯文,微信公眾號“機器之心( id: almosthuman2014)”】 

戳這里,看該作者更多好文

 

責任編輯:張燕妮 來源: 51CTO專欄
相關推薦

2022-08-02 11:31:46

Python語法代碼

2010-02-23 16:21:24

Python Win

2019-11-05 09:20:06

SQLiteLinux

2013-04-08 15:39:15

程序員

2018-10-30 12:44:04

Linux系統(tǒng)內存

2010-01-20 10:14:53

C++程序

2013-12-11 09:29:02

2014-10-24 10:10:33

UbuntuUbuntu 14.1

2022-11-02 08:55:43

Gofor 循環(huán)存儲

2010-03-10 11:14:56

智能交換機

2010-03-17 14:50:06

智能交換機

2010-08-30 10:37:04

云計算

2010-03-10 16:51:21

以太網交換機

2019-01-21 13:56:52

2016-11-15 09:43:56

大數據數據工程師

2023-11-06 08:41:31

JavaScript應用程序

2018-07-09 08:35:45

Windows 10WindowsBug

2019-03-20 13:15:29

Wi-Fi 6

2019-05-13 14:20:19

正則表達式JavaScript前端

2022-01-06 11:27:12

互聯網大廠校招生騰訊
點贊
收藏

51CTO技術棧公眾號