python 3.8 釋出在即,核心開發者團隊讓我總結一下最近討論的 python 4.0 預計推出的新功能,**名為“ ouroboros:自噬蛇”。python 4.0程式設計客棧 是大家翹首以盼的新版本,也將成為 python 歷史上的重大里程碑,在此感謝為之努力奮鬥的 100 多名貢獻者。
經過郵件列表上的論戰,pep8 裡的一行 79 個字元的限制將增加至一行 89.5 個字元。ide 使用者終於可以充分利用 30" 超寬 4k 顯示器的優勢啦!這是我們對每行 100 個字元這一呼聲的妥協,大家各退一步。
所有新的支援庫與標準庫模組的標題中必須包含 for humans(“以人為本”)。
python 4.0 終將推出一種新的字串型別,z-strings, 這是一種 c 語言風格的空終止位元組字串。只要在字串加上字首 z,如 z'my string',python 就會自動將它轉換成空終止字串(null-terminated)。注意:z-strings 不能用於現有需要獲取字串引數的 api,應該先將它解碼為 unicode 字串,或轉換為位元組(bytes)。
type-hinting(型別提示)擴充套件將提供一些更實用的功能。新推出的簡化版型別提示將被稱為 type whispering(型別低語)。
他碼弟,我們要用 libuv[1]為 twisted acyncio 提供事件迴圈(event loop)支援。
python 4.0 將支援在單一關鍵詞前使用 async 關鍵詞,並且鼓勵使用 async do so 這種方式。用 cargo-culting[2] 方式程式設計,讓魔法關鍵詞出現在所有地方也沒什麼不好,大家都希望程式能跑得更快,是不是?
在 python 3.7 版的 nam程式設計客棧edtuple 與 dataclasses 基礎上,python 4.0 將增加幾個千行 decorator-hack,用以實現簡單構建型別。
全域性解釋鎖(gil)已經被移除了。
開玩笑的!反之,我們一直努力,希望實現在一個執行緒裡,處理多個直譯器資料結構更容易。別客氣,以後再感謝我們吧!
需要將 bytes 轉為 str這件事,讓眾多被我們說服從 python 2.x 升級到 3.x 的公司為我們提供了不少工作機會。本著同樣的精神,很高興告訴大家,今後會有兩個 int 型別,其中,int 是 32 位帶符號的整數,lo程式設計客棧ng 是 64 位帶符號的整數。可能會有人說 “python 2 不就是這樣嗎?”,對於這點,我們要告訴大家,以後再也用不了 int 了,要把它們都轉換為 long。
鑑於,python 2程式設計客棧 升級 3 的工具大獲成功,我們計劃推出 python 3 升級 4 的工具,可以自動將**轉換為上述新特性。
很遺憾,以下特性未能入選 python 4.0 升級計劃:
我們嘗試過用 rust 重寫直譯器的部分功能,但沒人知道怎麼禁用 borrow-cheker,所以只好放棄了。
沒有switch 語句,不過,你可以用 dict。
concurrent.pasts(過去) 與concurrent.present(現在)沒有合併,不過,沒關係,我們還有 future(未來),是不是?
沒人能搞懂 twisted asyncio 如何運作,屆時,將不會對這方面的內容有所改進。python 軟體**會建議所有新專案都使用 gevent。
很抱歉,我們沒有對打包“環境”做出任何改進。
我們十分期待新版釋出,並會竭盡所能做好在它能用之前的幾個小版本。
要有信心!記住 python 的宣言:
唯有死亡,才會永生!
本文標題: 詳解python 4.0 預計推出的新功能
本文地址: /jiaoben/python/266845.html