Python 3.15 中的待移除功能¶
http.server.CGIHTTPRequestHandler
将同python -m http.server
中与其相关的--cgi
旗标一起被移除。 它已经过时并且很少被使用。 不存在直接的替代品。 对于建立 Web 服务器与请求处理器的接口的任务来说 任何东西 都比 CGI 要好。locale
:locale.getdefaultlocale()
在 Python 3.11 中已被弃用并且原计划在 Python 3.13 中移除 (gh-90817),但移除时间已被推迟至 Python 3.15。 请改用locale.setlocale()
,locale.getencoding()
和locale.getlocale()
。 (由 Hugo van Kemenade 在 gh-111187 中贡献。)pathlib
:pathlib.PurePath.is_reserved()
已被弃用,并计划在 Python 3.15 中移除。从 Python 3.13 起,请在 Windows 上使用``os.path.isreserved`` 检测保留路径。platform
:java_ver()
已被弃用并将在 3.15 中移除。 它几乎未经测试,具有令人困惑的 API,并且仅适用于 Jython 支持。 (由 Nikita Sobolev 在 gh-116349 中贡献。)threading
: 向threading.RLock()
传入任意参数的做法现已被弃用。 C 版本允许任意数量的 args 和 kwargs,但它们都会被忽略。 Python 版本不允许任何参数。 在 Python 3.15 中将从threading.RLock()
移除所有参数。 (由 Nikita Sobolev 在 gh-102029 中贡献。)-
创建
NamedTuple
类 (NT = NamedTuple("NT", x=int)
) 的关键字参数语法从未写入文档且已被弃用,并将在 3.15 中被禁止。 请改用基于类的语法或函数语法。
-
types.CodeType
: Accessingco_lnotab
was deprecated in PEP 626 since 3.10 and was planned to be removed in 3.12, but it only got a properDeprecationWarning
in 3.12. May be removed in 3.15. (Contributed by Nikita Sobolev in gh-101866.)
-
当使用函数式语法创建
NamedTuple
类时,不向 fields 形参传值的做法 (NT = NamedTuple("NT")
) 已被弃用。 将None
传给 fields 形参的做法 (NT = NamedTuple("NT", None)
) 也已被弃用。 两者都将在 Python 3.15 中被禁止。 要创建拥有 0 个字段的NamedTuple
类,请使用class NT(NamedTuple): pass
或NT = NamedTuple("NT", [])
。
typing.TypedDict
: 当使用函数语法创建TypedDict
类时,不向 fields 形参传值 (TD = TypedDict("TD")
) 的行为已被弃用。 将None
传给 fields 形参 (TD = TypedDict("TD", None)
) 的行为也已被弃用。 两者都将在 Python 3.15 中被禁止。 要创建拥有 0 个字段的TypedDict
类,请使用class TD(TypedDict): pass
或TD = TypedDict("TD", {})
。wave
: 已弃用wave.Wave_read
和wave.Wave_write
类的getmark()
,setmark()
和getmarkers()
方法。 它们将在 Python 3.15 中被移除。 (由 Victor Stinner 在 gh-105096 中贡献。)