計劃在 Python 3.15 中移除¶
匯入系統
在設定模組的
__cached__屬性時,若未同時設定__spec__.cached,此行為已被棄用。在 Python 3.15 中,匯入系統或標準庫將不再設定或考慮__cached__屬性。(由 gh-97879 貢獻)在設定模組的
__package__屬性時,若未同時設定__spec__.parent,此行為已被棄用。在 Python 3.15 中,匯入系統或標準庫將不再設定或考慮__package__屬性。(由 gh-97879 貢獻)
-
未寫入文件的
ctypes.SetPointerType()函式自 Python 3.13 起已被棄用。
-
過時且很少使用的
CGIHTTPRequestHandler已從 Python 3.13 開始棄用。沒有直接的替代品。任何將 Web 伺服器與請求處理程式對接的方式都比 CGI 好。python -m http.server 命令列介面的
--cgi旗標已自 Python 3.13 起棄用。
-
load_module()方法:請改用exec_module()。
-
自 Python 3.11 起,
getdefaultlocale()函式已被棄用。原計劃在 Python 3.13 (gh-90817) 中移除,但已推遲到 Python 3.15。請改用getlocale()、setlocale()和getencoding()。(由 Hugo van Kemenade 在 gh-111187 中貢獻。)
-
PurePath.is_reserved()已自 Python 3.13 起棄用。要檢測 Windows 上的保留路徑,請使用os.path.isreserved()。
-
java_ver()已自 Python 3.13 起棄用。此函式僅對 Jython 支援有用,其 API 令人困惑,且基本未經測試。
-
sysconfig.is_python_build()的 check_home 引數已自 Python 3.12 起棄用。
-
RLock()在 Python 3.15 中將不再接受任何引數。自 Python 3.14 起,傳遞任何引數的行為已被棄用,因為 Python 版本不允許任何引數,但 C 版本允許任意數量的位置或關鍵字引數,並會忽略所有引數。
-
types.CodeType:在 PEP 626 中,自 3.10 起,訪問co_lnotab已被棄用,並計劃在 3.12 中移除,但直到 3.12 才有了正式的DeprecationWarning。可能會在 3.15 中移除。(由 Nikita Sobolev 在 gh-101866 中貢獻。)
-
用於建立
NamedTuple類的未寫入文件的關鍵字引數語法(例如,Point = NamedTuple("Point", x=int, y=int))已自 Python 3.13 起棄用。請改用基於類的語法或函式式語法。當使用
TypedDict的函式式語法時,未向 fields 引數傳遞值(TD = TypedDict("TD"))或傳遞None(TD = TypedDict("TD", None))自 Python 3.13 起已被棄用。請使用class TD(TypedDict): pass或TD = TypedDict("TD", {})來建立零欄位的 TypedDict。typing.no_type_check_decorator()裝飾器函式已自 Python 3.13 起棄用。在typing模組中存在八年後,它仍未被任何主流型別檢查器支援。
wave:Wave_read和Wave_write類的getmark()、setmark()和getmarkers()方法自 Python 3.13 起已被棄用。
-
load_module()已自 Python 3.10 起棄用。請改用exec_module()。(由 Jiahao Li 在 gh-125746 中貢獻。)