Python 3.5¶
以下是 Python 3.5 已定案/已接受的 PEP 清單,依其對 MicroPython 的影響分組。
語法的擴充 |
狀態 |
|
額外的解包泛化 |
部分 |
|
新的矩陣乘法運算子 |
完整 |
|
使用 |
完整 |
|
執行時的擴充與變更 |
||
二進位字串的 % 格式化 |
完整 |
|
重試以 |
完整 |
|
變更產生器內部的 |
完整 |
|
標準函式庫變更 |
||
|
||
|
完整 |
|
雜項變更 |
||
改進的 Python zip 應用程式支援 |
||
讓 Python 啟動器能識別虛擬環境 |
不相關 |
|
型別提示(僅供參考) |
完整 [1] |
|
消除 PYO 檔案 |
不相關 |
|
重新設計擴充模組載入 |
||
其他語言變更:
新增了 namereplace 錯誤處理器。backslashreplace 錯誤處理器現在可用於解碼與轉譯。 |
|
屬性的文件字串現在可寫入。這對於 collections.namedtuple() 的文件字串特別有用 |
|
現在支援涉及相對匯入的循環匯入。 |
新模組:
內建模組的變更:
OrderedDict 類別現在以 C 語言實作,使其速度快 4 至 100 倍。 |
|
OrderedDict.items()、OrderedDict.keys()、OrderedDict.values() 檢視現在支援 reversed() 迭代。 |
|
deque 類別現在定義了 index()、insert() 與 copy(),並支援 + 與 * 運算子。 |
|
namedtuple() 所產生的文件字串現在可以更新。 |
|
UserString 類別現在實作了 __getnewargs__()、__rmod__()、casefold()、format_map()、isprintable() 與 maketrans() 方法,以對應 str 的相應方法。 |
|
merge() 中的元素比較現在可透過在新的選用 key 關鍵字引數中傳入 key 函式來自訂,而新的選用 reverse 關鍵字引數可用於反轉元素比較 |
|
新增 BufferedIOBase.readinto1() 方法,它最多對底層原始串流的 RawIOBase.read() 或 RawIOBase.readinto() 方法呼叫一次 |
|
JSON 解碼器現在會引發 JSONDecodeError 而非 ValueError,以提供關於錯誤的更佳上下文資訊。 |
|
math 模組新增了兩個常數:inf 與 nan。 |
完整 |
新增的 isclose() 函式提供了測試近似相等的方法。 |
|
新增了 gcd() 函式。fractions.gcd() 函式現已棄用。 |
|
新增了 scandir() 函式,它傳回 DirEntry 物件的迭代器。 |
|
urandom() 函式現在在 Linux 3.17 或更新版本上使用 getrandom() 系統呼叫,並在 OpenBSD 5.6 及更新版本上使用 getentropy(),省去了使用 /dev/urandom 的需要並避免因潛在的檔案描述子耗盡而導致的失敗。 |
|
新增的 get_blocking() 與 set_blocking() 函式允許取得與設定檔案描述子的封鎖模式(O_NONBLOCK)。 |
|
新增了 os.path.commonpath() 函式,傳回各傳入路徑名稱中最長的共同子路徑 |
|
現在於後行斷言中允許對固定長度群組的參考與條件參考 |
|
正規表示式中擷取群組的數量不再限制為 100 個。 |
|
sub() 與 subn() 函式現在以空字串取代未比對到的群組,而非引發例外。 |
|
re.error 例外具有新的屬性 msg、pattern、pos、lineno 與 colno,可提供關於錯誤的更佳上下文資訊 |
|
具有逾時的函式現在使用單調時鐘,而非系統時鐘。 |
|
新增的 socket.sendfile() 方法允許透過在 UNIX 上使用高效能的 os.sendfile() 函式來透過通訊端傳送檔案,使上傳速度比使用普通的 socket.send() 快 2 至 3 倍 |
|
socket.sendall() 方法不再於每次接收或傳送位元組時重設通訊端逾時。通訊端逾時現在是傳送所有資料的最大總時長。 |
|
socket.listen() 方法的 backlog 引數現在是選用的。預設會設為 SOMAXCONN 或 128,取較小者。 |
完整 |
記憶體 BIO 支援 |
|
應用層協定協商支援 |
|
新增的 SSLSocket.version() 方法可查詢實際使用中的協定版本。 |
|
SSLSocket 類別現在實作了 SSLSocket.sendfile() 方法。 |
|
SSLSocket.send() 方法現在於非封鎖通訊端上,若操作會造成封鎖,便會引發 ssl.SSLWantReadError 或 ssl.SSLWantWriteError 例外。先前它會傳回 0。 |
|
cert_time_to_seconds() 函式現在依 RFC 5280 將輸入時間解讀為 UTC 而非當地時間。此外,傳回值一律為 int。 |
|
新增的 SSLObject.shared_ciphers() 與 SSLSocket.shared_ciphers() 方法傳回用戶端在握手期間所傳送的加密套件清單。 |
|
SSLSocket 類別的 SSLSocket.do_handshake()、SSLSocket.read()、SSLSocket.shutdown() 與 SSLSocket.write() 方法不再於每次接收或傳送位元組時重設通訊端逾時。 |
|
match_hostname() 函式現在支援 IP 位址的比對。 |
|
新增的 set_coroutine_wrapper() 函式允許設定一個全域掛鉤,每當 async def 函式建立協程物件時便會被呼叫。相應的 get_coroutine_wrapper() 可用於取得目前所設定的包裝器。 |
|
新增的 is_finalizing() 函式可用於檢查 Python 直譯器是否正在關閉。 |
|
monotonic() 函式現在一律可用 |
|
備註