cobject.md
1> **Источник:** https://python-all.ru/3.1/c-api/cobject.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# CObjects89> **Предупреждение**10>11> API CObject устарел начиная с Python 3.1. Переключитесь на новый [*Capsules*](https://python-all.ru/3.1/c-api/capsule.html#capsules) API.1213**`PyCObject`**1415Этот подтип1617[`PyObject`](https://python-all.ru/3.1/c-api/structures.html#PyObject)1819представляет непрозрачное значение, полезное для C-расширений, которым нужно передать непрозрачное значение (как указатель2021`void*`2223) через код Python в другой C-код. Часто используется, чтобы сделать указатель на функцию C, определённую в одном модуле, доступным для других модулей, так что обычный механизм импорта можно использовать для доступа к C API, определённым в динамически загружаемых модулях.2425**int `PyCObject_Check`([PyObject](https://python-all.ru/3.1/c-api/structures.html#PyObject) *\*p*)**2627Возвращает true, если аргумент является2829[`PyCObject`](https://python-all.ru/3.1/c-api/cobject.html#PyCObject)3031.3233**[PyObject](https://python-all.ru/3.1/c-api/structures.html#PyObject)\* `PyCObject_FromVoidPtr`(void\* *cobj*, void (\*destr)(void *\*)*)**3435*Возвращаемое значение: новая ссылка.*3637Создаёт [`PyCObject`](https://python-all.ru/3.1/c-api/cobject.html#PyCObject) из `void *` *cobj*. Функция *destr* будет вызвана при освобождении объекта, если она не равна *NULL*.3839**[PyObject](https://python-all.ru/3.1/c-api/structures.html#PyObject)\* `PyCObject_FromVoidPtrAndDesc`(void\* *cobj*, void\* *desc*, void (\*destr)(void *\**, void *\*)*)**4041*Возвращаемое значение: новая ссылка.*4243Создаёт [`PyCObject`](https://python-all.ru/3.1/c-api/cobject.html#PyCObject) из `void *` *cobj*. Функция *destr* будет вызвана при освобождении объекта. Аргумент *desc* можно использовать для передачи дополнительных данных колбэка в функцию деструктора.4445**void\* `PyCObject_AsVoidPtr`([PyObject](https://python-all.ru/3.1/c-api/structures.html#PyObject)\* *self*)**4647Возвращает объект4849`void *`5051, с которым был создан5253[`PyCObject`](https://python-all.ru/3.1/c-api/cobject.html#PyCObject)5455*self*5657.5859**void\* `PyCObject_GetDesc`([PyObject](https://python-all.ru/3.1/c-api/structures.html#PyObject)\* *self*)**6061Возвращает описание6263`void *`6465, с которым был создан6667[`PyCObject`](https://python-all.ru/3.1/c-api/cobject.html#PyCObject)6869*self*7071.7273**int `PyCObject_SetVoidPtr`([PyObject](https://python-all.ru/3.1/c-api/structures.html#PyObject)\* *self*, void\* *cobj*)**7475Устанавливает указатель void внутри7677*self*7879в8081*cobj*8283.8485[`PyCObject`](https://python-all.ru/3.1/c-api/cobject.html#PyCObject)8687не должен иметь связанного деструктора. Возвращает true при успехе, false при неудаче.88