# Python 3.18 中待移除的項目

- 以下私有函式已被棄用，並計劃在 Python 3.18 中移除：

  - `_PyBytes_Join()`：請改用 `PyBytes_Join()`。

  - `_PyDict_GetItemStringWithError()`：請改用 `PyDict_GetItemStringRef()`。

  - `_PyDict_Pop()`：請改用 `PyDict_Pop()`。

  - `_PyLong_Sign()`：請改用 `PyLong_GetSign()`。

  - `_PyLong_FromDigits()` 和 `_PyLong_New()`：請改用 `PyLongWriter_Create()`。

  - `_PyThreadState_UncheckedGet()`：請改用 `PyThreadState_GetUnchecked()`。

  - `_PyUnicode_AsString()`：請改用 `PyUnicode_AsUTF8()`。

  - `_PyUnicodeWriter_Init()`：將 `_PyUnicodeWriter_Init(&writer)` 替換為 `writer = PyUnicodeWriter_Create(0)`。

  - `_PyUnicodeWriter_Finish()`：將 `_PyUnicodeWriter_Finish(&writer)` 替換為 `PyUnicodeWriter_Finish(writer)`。

  - `_PyUnicodeWriter_Dealloc()`：將 `_PyUnicodeWriter_Dealloc(&writer)` 替換為 `PyUnicodeWriter_Discard(writer)`。

  - `_PyUnicodeWriter_WriteChar()`：將 `_PyUnicodeWriter_WriteChar(&writer, ch)` 替換為 `PyUnicodeWriter_WriteChar(writer, ch)`。

  - `_PyUnicodeWriter_WriteStr()`：將 `_PyUnicodeWriter_WriteStr(&writer, str)` 替換為 `PyUnicodeWriter_WriteStr(writer, str)`。

  - `_PyUnicodeWriter_WriteSubstring()`：將 `_PyUnicodeWriter_WriteSubstring(&writer, str, start, end)` 替換為 `PyUnicodeWriter_WriteSubstring(writer, str, start, end)`。

  - `_PyUnicodeWriter_WriteASCIIString()`：將 `_PyUnicodeWriter_WriteASCIIString(&writer, str)` 替換為 `PyUnicodeWriter_WriteASCII(writer, str)`。

  - `_PyUnicodeWriter_WriteLatin1String()`：將 `_PyUnicodeWriter_WriteLatin1String(&writer, str)` 替換為 `PyUnicodeWriter_WriteUTF8(writer, str)`。

  - `_PyUnicodeWriter_Prepare()`：（無替代方案）。

  - `_PyUnicodeWriter_PrepareKind()`：（無替代方案）。

  - `_Py_HashPointer()`：請改用 `Py_HashPointer()`。

  - `_Py_fopen_obj()`：請改用 `Py_fopen()`。

  可以使用 pythoncapi-compat project 來取得這些於 Python 3.13 及更早版本的新公開函式。（由 Victor Stinner 在 gh-128863 貢獻）