計劃在 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.SelectorEventLoop
import 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 起棄用。