Python 3.9 釋出了 – 快速了解一下你必須知道的重要新增功能

Python 3.9 版最近發佈了,增加了哪些新的功能請參考 – What’s New In Python 3.9

在 Twitter 上看到有開發者特別將這次的更新製作了視覺化的圖片,可以幫助你快速了解這次更新的重點

圖片來源

從這張圖片來看一下,這次更新的重點( 請注意!這張圖片並沒有包含全部的更新)

Dictionary 的合併功能

a = {"key1":1,"key2":2}
b = {"key3":3,"key4":4}
print(a|b) # 將 a 與 b 合併
>{"key1":1,"key2":2,"key3":3,"key4":4} 

更新與合併 Dictionary

a = {"key1":1,"key2":2}
b = {"key2":3,"key4":4}
print(a|=b) #使用 b 的值更新與合併 a 的值
>{"key1":1,"key2":3,"key4":4} 

在 DateTime 支援 IANA 時區

IANA 是時區資料庫

>>> from zoneinfo import ZoneInfo
>>> from datetime import datetime, timedelta

>>> #日光節約時間
>>> dt = datetime(2020, 10, 31, 12, tzinfo=ZoneInfo("America/Los_Angeles"))
>>> print(dt)
2020-10-31 12:00:00-07:00
>>> dt.tzname()
'PDT'

>>> #標準時間
>>> dt += timedelta(days=7)
>>> print(dt)
2020-11-07 12:00:00-08:00
>>> print(dt.tzname())
PST

亂數位元產生

random.Random.randbytes()

新的字串操作方法可移除字串的前置/後置詞

string = "Hello World"
output = string.removeprefix("Hello ")
print(output)
>World 
string = "Hello World"
output = string.removesuffix("World")
print(output)
>Hello

一致的套件匯入錯誤訊息

importlib.util.resolve_name() 現在會丟出 ImportError 而不是 ValueError

可以取消併發( concurrent ) 功能

concurrent.futures.Executor.shutdown() 新增了一個設定參數 cancel_futures,可以用來取消還沒開始執行的所有 pending futures

內建一般型別的型別提示

def print_value(input: str):
   print(input)
#如果輸入不是 string 會得到通知

新的 Parser

Python 3.9 使用了一個新的解析器,該解析器基於 PEG 而不是 LL(1)。 新解析器的性能可以與舊解析器媲美,但是在設計新語言功能時,PEG 形式主義比LL(1)更靈活。 將在Python 3.10及更高版本中開始使用這種靈活性。

更詳盡的更新內容請參考 What’s New In Python 3.9

相關資訊

 歡迎使用 App / Email | Telegram 訂閱 網站更新

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料

Powered by WordPress.com.

Up ↑

%d 位部落客按了讚: