picklebuffer.md
1> **Источник:** https://python-all.ru/3.13/c-api/picklebuffer.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# Объекты буфера pickle89Добавлено в версии 3.8.1011Объект [`pickle.PickleBuffer`](https://python-all.ru/3.13/library/pickle.html#pickle.PickleBuffer) оборачивает [объект, предоставляющий буфер](https://python-all.ru/3.13/c-api/buffer.html#bufferobjects) для внеполосной передачи данных с модулем [`pickle`](https://python-all.ru/3.13/library/pickle.html#module-pickle).1213#### `PyTypeObject PyPickleBuffer_Type`1415Этот экземпляр [`PyTypeObject`](https://python-all.ru/3.13/c-api/type.html#c.PyTypeObject) представляет тип буфера pickle в Python. Это тот же объект, что и [`pickle.PickleBuffer`](https://python-all.ru/3.13/library/pickle.html#pickle.PickleBuffer) на уровне Python.1617#### `int PyPickleBuffer_Check(PyObject *op)`1819Возвращает true, если *op* является экземпляром буфера pickle. Эта функция всегда завершается успешно.2021#### `PyObject *PyPickleBuffer_FromObject(PyObject *obj)`2223Создаёт буфер pickle из объекта *obj*.2425Эта функция завершится ошибкой, если *obj* не поддерживает [протокол буфера](https://python-all.ru/3.13/c-api/buffer.html#bufferobjects).2627В случае успеха возвращает новый экземпляр буфера pickle. В случае неудачи устанавливает исключение и возвращает `NULL`.2829Аналогично вызову [`pickle.PickleBuffer`](https://python-all.ru/3.13/library/pickle.html#pickle.PickleBuffer) с *obj* в Python.3031#### `const Py_buffer *PyPickleBuffer_GetBuffer(PyObject *picklebuf)`3233Получает указатель на лежащий в основе [`Py_buffer`](https://python-all.ru/3.13/c-api/buffer.html#c.Py_buffer), который оборачивает буфер pickle.3435Возвращённый указатель действителен, пока *picklebuf* жив и не освобождён. Вызывающий не должен изменять или освобождать возвращённый [`Py_buffer`](https://python-all.ru/3.13/c-api/buffer.html#c.Py_buffer). Если буфер pickle был освобождён, возбуждается [`ValueError`](https://python-all.ru/3.13/library/exceptions.html#ValueError).3637В случае успеха возвращает указатель на представление буфера. В случае неудачи устанавливает исключение и возвращает `NULL`.3839#### `int PyPickleBuffer_Release(PyObject *picklebuf)`4041Освобождает лежащий в основе буфер, удерживаемый буфером pickle.4243Возвращает `0` в случае успеха. В случае неудачи устанавливает исключение и возвращает `-1`.4445Аналогично вызову [`pickle.PickleBuffer.release()`](https://python-all.ru/3.13/library/pickle.html#pickle.PickleBuffer.release) в Python.46