好文分享 — Python 各版本主要變更摘要 / Summary of Major Changes Between Python Versions
自從 Python 3.4之後, Python 版本更迭的速度變得更加頻繁,幾乎是每年都推 1 個版本,現在更是已經進到 3.13 的 prerelease 階段,由此可見 Python 社群的開發能量有多豐沛。
噢對, Python 3.8 會在 2024 年 10 月份踏入 EoL(End of life) 階段,如果你還在使用 Python 3.8 的話,可以開始安排轉移到更新的版本囉。
也由於 Python 頻繁的更迭,所以 “Summary of Major Changes Between Python Versions” 1 文為我們整理每個版本重大的功能變更,還附上一些範例程式碼供我們參考,相當值得讀一下。
我也摘要各個版本幾個實務開發很方便的功能:
Python 3.7 (含之前版本): f-strings, asyncio, dataclasses
p.s. Python 3.7 字典改成會保證新增順序,也就是說走訪字典時, key 的順序就是新增的順序
Python 3.8: type.Protocol
Python 3.9: 字典支援聯集操作(Dict Union Operator), 可以使用 dict_a | dict_b 聯集字典
Python 3.10: type.ParamSpec 可以做到類似 typescript generic type 的用法
Python 3.11: tomllib 支援解析 Toml 格式、 Exception Groups 能將多個 Exceptions 變成群組、 Exception Notes 能為 exception 添增 note 做到更開發者友善的例外處理
Python 3.12: 可以用 type.Unpack 為 **kwargs 標上型別
更詳細的 Python 個版本功能變更可以看原文,說不定有你意想不到的功能在裡面!