Документация Python неофициальный перевод

cobject.md

86 строк · 3.9 КБ · обычная страница · сырой текст · скачать

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