# 计划在 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 项目 可被用于在 Python 3.13 及更早版本中获取这些新的公有函数。 （由 Victor Stinner 在 gh-128863 中贡献。）