objbuffer.md
1> **Источник:** https://python-all.ru/3.0/c-api/objbuffer.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# Протокол буфера89**\[PyObject\_AsCharBuffer\]int `PyObject_AsCharBuffer`([PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*obj*, const char *\*\*buffer*, Py\_ssize\_t *\*buffer\_len*)**1011Возвращает указатель на область памяти только для чтения, пригодную для ввода на основе символов. Аргумент1213*obj*1415должен поддерживать односегментный символьный буферный интерфейс. В случае успеха возвращает1617`0`1819, устанавливает2021*buffer*2223на адрес памяти и2425*buffer\_len*2627на длину буфера. В случае ошибки возвращает2829`-1`3031и устанавливает3233[`TypeError`](https://python-all.ru/3.0/library/exceptions.html#exceptions.TypeError)3435.3637**\[PyObject\_AsReadBuffer\]int `PyObject_AsReadBuffer`([PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*obj*, const void *\*\*buffer*, Py\_ssize\_t *\*buffer\_len*)**3839Возвращает указатель на область памяти только для чтения, содержащую произвольные данные. Аргумент4041*obj*4243должен поддерживать односегментный читаемый буферный интерфейс. В случае успеха возвращает4445`0`4647, устанавливает4849*buffer*5051на адрес памяти и5253*buffer\_len*5455на длину буфера. В случае ошибки возвращает5657`-1`5859и устанавливает6061[`TypeError`](https://python-all.ru/3.0/library/exceptions.html#exceptions.TypeError)6263.6465**\[PyObject\_CheckReadBuffer\]int `PyObject_CheckReadBuffer`([PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*o*)**6667Возвращает6869`1`7071, если7273*o*7475поддерживает интерфейс односегментного читаемого буфера. В противном случае возвращает7677`0`7879.8081**\[PyObject\_AsWriteBuffer\]int `PyObject_AsWriteBuffer`([PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*obj*, void *\*\*buffer*, Py\_ssize\_t *\*buffer\_len*)**8283Возвращает указатель на область памяти для записи. Аргумент8485*obj*8687должен поддерживать односегментный символьный буферный интерфейс. В случае успеха возвращает8889`0`9091, устанавливает9293*buffer*9495на адрес памяти и9697*buffer\_len*9899на длину буфера. В случае ошибки возвращает100101`-1`102103и устанавливает104105[`TypeError`](https://python-all.ru/3.0/library/exceptions.html#exceptions.TypeError)106107.108