計劃在 Python 3.16 中移除¶
匯入系統
在設定模組的
__loader__屬性時,若未同時設定__spec__.loader,此行為已被棄用。在 Python 3.16 中,匯入系統或標準庫將不再設定或考慮__loader__屬性。
-
'u'格式程式碼(wchar_t)自 Python 3.3 起在文件中被棄用,自 Python 3.13 起在執行時被棄用。請改用'w'格式程式碼(Py_UCS4)來處理 Unicode 字元。
-
asyncio.iscoroutinefunction()已被棄用,並將在 Python 3.16 中移除;請改用inspect.iscoroutinefunction()。(由 Jiahao Li 和 Kumar Aditya 在 gh-122875 中貢獻。)asyncio的策略系統已被棄用,並將在 Python 3.16 中移除。特別是,以下類和函式已被棄用:使用者應使用
asyncio.run()或帶 loop_factory 引數的asyncio.Runner來使用期望的事件迴圈實現。例如,在 Windows 上使用
asyncio.SelectorEventLoopimport asyncio async def main(): ... asyncio.run(main(), loop_factory=asyncio.SelectorEventLoop)
(由 Kumar Aditya 在 gh-127949 中貢獻。)
-
對布林型別進行按位取反(
~True或~False)的行為已自 Python 3.12 起棄用,因為它會產生令人驚訝且不直觀的結果(-2和-1)。要對布林值進行邏輯非運算,請改用not x。在極少數情況下,如果您需要對底層整數進行按位取反,請顯式轉換為int(~int(x))。
-
以關鍵字引數形式向
functools.reduce()的 Python 實現傳遞 function 或 sequence 引數的做法已自 Python 3.14 起棄用。
-
對帶有 strm 引數的自定義日誌處理程式的支援已被棄用,並計劃在 Python 3.16 中移除。請改用 stream 引數來定義處理程式。(由 Mariusz Felisiak 在 gh-115032 中貢獻。)
-
對於
mimetypes.MimeTypes.add_type(),有效的副檔名應以“.”開頭或是空字串。不帶點的副檔名已被棄用,並將在 Python 3.16 中引發ValueError。(由 Hugo van Kemenade 在 gh-75223 中貢獻。)
-
ExecError異常已自 Python 3.14 起棄用。自 Python 3.4 以來,shutil中的任何函式都未使用過它,現在它是RuntimeError的別名。
-
Class.get_methods方法已自 Python 3.14 起棄用。
sys:_enablelegacywindowsfsencoding()函式自 Python 3.13 起已被棄用。請改用PYTHONLEGACYWINDOWSFSENCODING環境變數。
-
sysconfig.expand_makefile_vars()函式已自 Python 3.14 起棄用。請改用sysconfig.get_paths()的vars引數。
-
未寫入文件且未使用的
TarFile.tarfile屬性已自 Python 3.13 起棄用。