Python 3.7

新功能:

功能

狀態

PEP 538

將舊式 C locale 強制轉為基於 UTF-8 的 locale

PEP 539

CPython 中執行緒區域儲存的新 C-API

PEP 540

UTF-8 模式

PEP 552

確定性的 pyc

PEP 553

內建的 breakpoint()

PEP 557

資料類別

PEP 560

對 typing 模組與泛型型別的核心支援

PEP 562

模組層級的 __getattr____dir__

部分支援

PEP 563

延後評估註解

PEP 564

具奈秒解析度的時間函式

部分支援 [1]

PEP 565

__main__ 中顯示 DeprecationWarning

PEP 567

情境變數

其他語言變更:

asyncawait 現在是保留關鍵字

已完成

dict 物件必須保留插入順序

現在可以將超過 255 個引數傳遞給函式;函式現在也可以有超過 255 個參數

bytes.fromhex()bytearray.fromhex() 現在會忽略所有 ASCII 空白,而不僅是空格

strbytesbytearray 新增對 isascii() 方法的支援,可用來測試字串或位元組是否只包含 ASCII 字元

from ... import ... 失敗時,ImportError 現在會顯示模組名稱與模組的 __file__ 路徑

現在支援涉及絕對匯入並將子模組綁定到某名稱的循環匯入

object.__format__(x, '') 現在等同於 str(x),而非 format(str(self), '')

為了更好地支援動態建立堆疊追蹤,types.TracebackType 現在可從 Python 程式碼實例化,且回溯上的 tb_next 屬性現在可寫入

使用 -m 選項時,sys.path[0] 現在會即時展開為完整的起始目錄路徑,而不再保留為空目錄(這允許在匯入發生時從當前工作目錄匯入)

新的 -X importtime 選項或 PYTHONPROFILEIMPORTTIME 環境變數可用來顯示每個模組匯入的耗時

內建模組的變更:

asyncio

多到無法逐一列出

gc

新功能包括 gc.freeze()gc.unfreeze()gc-get_freeze_count

math

新增了 math.remainder() 以實作 IEEE 754 風格的餘數

re

多項整理改進,包括更好地支援以空字串進行分割,以及對已編譯表示式與 match 物件的複製支援

sys

新增 sys.breakpointhook()。新增 sys.get(/set)_coroutine_origin_tracking_depth()

time

主要是更新以支援 PEP564 中的奈秒解析度,詳見上文

註解