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