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