當前位置:
首頁 > 新聞 > Python 3.7.0 來了!

Python 3.7.0 來了!

Python 3.7.0 來了!

Python 3.7.0 來了!

新智元編譯

來源:Python software foundation

作者:聞菲,肖琴

【新智元導讀】Python官網靜悄悄地發布了一條大消息:正式發布 Python 3.7.0!同時發布的還有Python 3.6.6穩定版。官網剛剛更新了可下載文檔,還在用Python 2.7和Python3.5的你,趕緊用起來!

Python 3.7.0 來了!

Python官網宣布,正式發布Python 3.7.0!

Python 3.7.0 來了!


2018年6月27日星期三


Python 3.7.0現已推出(同時還有3.6.6版本)!


代表Python開發社區和Python 3.7發布團隊,我們很高興地宣布Python 3.7.0現在可以使用了。Python 3.7.0是Python語言的最新功能版本,包含許多新的功能和優化。你可以在這裡下載 Python 3.7.0:


https://www.python.org/downloads/release/python-370/


Python的大多數第三方庫也應該儘快支持3.7.0軟體包。


有關3.7系列功能的更多信息,請參閱Python 3.7中的新功能文檔。有關3.7.0中所做更改的詳細信息,請參見其更改日誌。3.7系列的維護版本將從2018年7月開始定期進行。

我們希望您喜歡Python 3.7!


另附:我們也很高興地宣布,Python 3.6.6的下一個維護版本Python 3.6可以使用了:https://www.python.org/downloads/release/python-366/


感謝所有幫助Python開發和這些發布的志願者!歡迎通過志願或組織捐贈支持Python軟體基金會的工作。

Python 3.7.0 重大功能改進

那麼,這次新發布的Python 3.7.0 有哪些重要的改進呢?總的來說,

新的syntax功能:

  • PEP 563,推遲了類型注釋(type annotations)的評估

向後不兼容的syntax更改:

  • async 和 await 現在是保留關鍵詞

新的庫模塊:

  • contextvars:PEP 567 - 上下文變數

  • dataclasse:PEP 557 - 數據類

  • importlib.resources

新的內置功能:

  • PEP 553,新的 breakpoint 函數

Python 數據模型改進:

  • PEP 562,定製訪問模塊屬性

  • PEP 560,核心支持 typing module 和 generic types

  • dict 對象的插入順序保存性質被納入Python官方語言規範

標準庫的重大改進:

  • asyncio 模塊增加了新功能,提高了可用性和性能

  • time 模塊新增納秒級函數支持,新函數將納秒數作為整數值返回

CPython 部署改進:

  • 避免使用 ASCII 作為默認文本編碼

  • PEP 552,deterministic .pycs

  • 新的 runtime 模式

  • PEP 565,改進了 DeprecationWarning 處理

C API 改進:

  • PEP 539,用於線程本地存儲的新C API

文檔改進:

  • PEP 545,Python文檔翻譯

  • 新增日語、法語和韓語文檔

Python 3.7.0 新增特性

那麼,接下來詳細看看這些功能。

PEP 563:推遲對注釋語句的評估

Python的類型提示有兩個明顯的可用性問題:

注釋只能使用當前範圍內已有的名稱,換句話說,它們不支持任何類型的前向引用; 注釋源代碼對Python程序的啟動時間有不利影響。

通過推遲注釋評估可以解決這兩個問題。編譯器不是編譯在定義時在注釋中執行表達式的代碼,而是將注釋以字元串形式存儲。如果需要,可以使用typing.get_type_hints在運行時解析注釋。在不需要解析的常見情況下,注釋的存儲成本更低,並且啟動時間更快。

PEP 538:C語言環境強制

Python 3系列中的一個持續的挑戰是確定一種合理的默認策略,用於處理目前在非Windows平台上使用默認C或POSIX語言環境的「7-bit ASCII」文本編碼假設。

PEP 538更新默認解釋器命令行界面,自動將該語言環境強制轉換為可用的基於UTF-8的語言環境。 自動設置LC_CTYPE意味著核心解釋器和C擴展(例如readline)將假設使用UTF-8作為默認文本編碼,而不是ASCII。

PEP 540:強制UTF-8 Runtime 模式

新的-X utf8命令行選項和PYTHONUTF8環境變數可用於啟用CPython UTF-8模式。

PEP 553:內置breakpoint

Python 3.7新增了內置函數breakpoint,作為進入Python調試器的簡單而一致的方式。

PEP 539:新增用於線程本地存儲的C API

雖然Python為線程本地存儲支持提供了一個C API; 但現有的線程本地存儲(TLS)API使用int來表示所有平台上的TLS密鑰,但這既不符合POSIX標準,也不具備任何實際意義上的便攜性。

PEP 539通過向CPython提供新的線程本地存儲(TSS)API來改變這一點,該API取代了在CPython解釋器中使用現有TLS API,同時棄用現有API。TSS API使用新類型Py_tss_t而不是int來表示TSS密鑰,這將允許在本地TLS密鑰定義的平台上構建CPython。

PEP 562:定製對模塊屬性的訪問

Python 3.7支持在模塊上定義__getattr __,並且只要沒有找到模塊屬性就會調用它。也允許在模塊上定義__dir __。

PEP 564:time 內置函數支持納秒

為了避免精度損失,PEP 564在timemodule添加了六個新「納秒」(nanosecond)變數:

  • time.clock_gettime_ns

  • time.clock_settime_ns

  • time.monotonic_ns

  • time.perf_counter_ns

  • time.process_time_ns

  • time.time_ns

PEP 565:在__main__中默認顯示DeprecationWarning

DeprecationWarning的默認處理已更改,以便默認情況下再次顯示這些警告,但僅當觸發它們的代碼直接在__main__模塊中運行時才會顯示。

PEP 560:新增支持類型模塊和泛型

PEP引入了兩種特殊方法__class_getitem __和__mro_entries__,這些方法現在被大多數類和特殊構造用於輸入。結果,不同類型的各種操作的速度提高了7倍,可以使用泛型而沒有元類衝突,並且修改了類型模塊中長期存在的一些bug。

PEP 552:基於哈希的.pyc文件

PEP 552擴展了pyc格式,允許源文件的哈希值用於invalidation,而不是源timestamp。這種.pyc文件稱為「hash-based」。默認情況下,Python仍然使用基於時間戳的invalidation,並且不會在運行時生成基於哈希的.pyc文件。可以使用py_compile或compileall生成基於哈希的.pyc文件。

PEP 545:Python文檔翻譯

PEP 545描述了創建和維護Python文檔翻譯的過程。添加了三種語言的翻譯:

?日本:https://docs.python.org/ja/

?法語:https://docs.python.org/fr/

?韓國:https://docs.python.org/ko/

開發運行時模式:-X dev

新的-X dev命令行選項或newPYTHONDEVMODE環境變數可用於啟用CPython的開發模式。在開發模式下,CPython執行額外的運行時檢查,這些檢查無法在默認情況下啟用。

性能提升及文檔下載

根據官方文檔表示,新升級的各種優化使 Linux 上的 Python 啟動時間減少了 10%,而 macOS 上的啟動時間更是減少了 30%。

由於位元組碼更改,方法調用現在可以快 20%。

由於PEP 560工作,typing 導入時間減少了 7 倍,現在許多 typing 操作也更快。

等等優化,還有更多。

Python官網有非常全面的文檔,是今天剛剛更新的:

Python 3.7.0 來了!

也列出了轉換為新版本會遇到的問題和應對方法:

Python 3.7.0 來了!

現在,Python 3.7.0 已經可以下載:https://www.python.org/downloads/

Python 3.7.0 來了!

還等什麼,趕快用起來!

【加入社群】

新智元 AI 技術 + 產業社群招募中,歡迎對 AI 技術 + 產業落地感興趣的同學,加小助手微信號: aiera2015_3入群;通過審核後我們將邀請進群,加入社群後務必修改群備註(姓名 - 公司 - 職位;專業群審核較嚴,敬請諒解)。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 新智元 的精彩文章:

「CVPR Oral」TensorFlow實現StarGAN代碼全部開源,1天訓練完
「超GPU 100倍」IBM新型AI晶元發Nature,英特爾、微軟出大招

TAG:新智元 |