计划在 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 中贡献。)