# Python 3.15 中待移除的項目

- `http.server.CGIHTTPRequestHandler` 將會被移除，連同其相關的 `--cgi` 旗標到 `python -m http.server`。它已經過時且很少被使用。沒有直接的替代方案。任何東西都比 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()` is deprecated and scheduled for removal in Python 3.15. Use `os.path.isreserved()` to detect reserved paths on Windows.

- `platform`：`java_ver()` 已被棄用並將在 3.15 中移除。它幾乎沒有被測試過，API 令人困惑並且只對 Jython 支援有用。 (由 Nikita Sobolev 於 gh-116349 貢獻。)

- `threading`：對 `threading.RLock()` 傳遞任何引數現在已被棄用。C 版本允許任意數量的引數和關鍵字引數，但它們會被忽略。Python 版本不允許任何引數。所有引數將在 Python 3.15 中從 `threading.RLock()` 中移除。 (由 Nikita Sobolev 於 gh-102029 貢獻。)

- `typing.NamedTuple`：

  - 用於建立 `NamedTuple` 類別的未以文件記錄之關鍵字引數語法 (`NT = NamedTuple("NT", x=int)`) 已棄用，並將在 3.15 中被禁止。請改用基於類別的語法或函式語法 (functional syntax)。

  - 當使用函式語法來建立 `NamedTuple` 類別時，沒將值傳遞給 fields 參數的方式 (`NT = NamedTuple("NT")`) 已被棄用，將 `None` 傳遞給 fields 參數（`NT = NamedTuple("NT", None)`）也已被棄用。這兩者將在 Python 3.15 中會被禁止。要建立一個沒有欄位的 `NamedTuple` 類別，請使用 `class NT(NamedTuple): pass` 或 `NT = NamedTuple("NT", [])`。

- `typing.TypedDict`：當使用函式語法來建立 `TypedDict` 類別時，沒將值傳遞給 fields 參數的方式（`TD = TypedDict("TD")`）已被棄用，將 `None` 傳遞給 fields 參數（`TD = TypedDict("TD", None)`）也已被棄用。這兩者將在 Python 3.15 中會被禁止。要建立一個沒有欄位的 `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 貢獻。)