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

  • pathlibpathlib.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 中贡献。)

  • typing.NamedTuple:

    • 创建 NamedTuple 类 (NT = NamedTuple("NT", x=int)) 的关键字参数语法从未写入文档且已被弃用,并将在 3.15 中被禁止。 请改用基于类的语法或函数语法。

  • types:

  • typing:

    • 当使用函数式语法创建 NamedTuple 类时,不向 fields 形参传值的做法 (NT = NamedTuple("NT")) 已被弃用。 将 None 传给 fields 形参的做法 (NT = NamedTuple("NT", None)) 也已被弃用。 两者都将在 Python 3.15 中被禁止。 要创建拥有 0 个字段的 NamedTuple 类,请使用 class NT(NamedTuple): passNT = NamedTuple("NT", [])

  • typing.TypedDict: 当使用函数语法创建 TypedDict 类时,不向 fields 形参传值 (TD = TypedDict("TD")) 的行为已被弃用。 将 None 传给 fields 形参 (TD = TypedDict("TD", None)) 的行为也已被弃用。 两者都将在 Python 3.15 中被禁止。 要创建拥有 0 个字段的 TypedDict 类,请使用 class TD(TypedDict): passTD = TypedDict("TD", {})

  • wave: 已弃用 wave.Wave_readwave.Wave_write 类的 getmark(), setmark()getmarkers() 方法。 它们将在 Python 3.15 中被移除。 (由 Victor Stinner 在 gh-105096 中贡献。)