機器之心報道
參與:一鳴、Jamin
Python3.8 的熱乎勁還沒過去,Python 就又雙叒叕要更新了。近日,3.9 版本的第四個 alpha 版已經開源。從文檔中,我們可以看到官方透露的對 dict、math 等組件增加的新特性,以及下一步的開發進展。
自公開了 3.8 版本後,Python 的迭代依然在繼續。目前是 Python3.9,這是一個正在開發的 Python 版本。其最新的 alpha 4.0 版本——3.9.0a4 已經公開。公開這一版本的原因是希望幫助開發者儘快測試新特性、修復 bug 並測試開源流程。在這一階段,新特性還在增加,直到迭代到 beta 版本,甚至是候選版本。官方表示,當前版本不推薦應用到生產環境中,以免對業務造成影響。
開源地址:https://www.python.org/downloads/release/python-390a4/
Dict 有新功能,更靈活的函數和變量註解
和 3.8 版本相比,Python3.9 會有以下新特性:
- Dict:增加 Union 計算;
- 靈活的函數和變量註解;
- Python 從 3.9 開始會有穩定的年度更新模式;
- 垃圾回收可以應用於重用的對象上;
- 增加 os.pidfd_open,使得進程管理不需要 race 和 signal;
其他重要新特性
字典合併及操作符更新:
合併 (|) 以及更新 (|=) 操作符已歸為內置的 dict 類別中
Import Error:
__import__() 現在反饋的是 ImportError 而不是 ValueError , 這個錯誤之前常發生在相對導入超過其頂層包的情況中。
math:
擴展了 math.gcd() 函數以便可以處理多個參數。而之前版本,它只支持處理兩個參數。
添加 math.lcm() 函數,用以返還指定參數的最小公倍數。
添加 math.nextafter() 函數,在面向 x 指向 y 後返還下一個浮點值。
添加 math.ulp() 函數,用以返還最小有效位的浮點值。
其他優化
優化了用於分配及理解中的臨時變量慣用語。現在理解中的 for y in[expr] 與簡單分配的 y = expr 一樣快,比如 :
sums = [s for s in [0] for x in data for s in [s + x]]
與 := 操作符不同的是,這種習慣用法不會將變量洩露至外部的作用域中。
據悉,Python 3.9 將會繼續開發,官方打算在 5 月 18 日推出第一個 beta 版本,第一個候選版本會在今年 8 月上旬放出,而最終版的公開時間定於 10 月 5 日。機器之心將會跟進報道。
參考鏈接:https://docs.python.org/3.9/whatsnew/3.9.html
閱讀更多 機器之心Pro 的文章