CPython C API: 5 вопросов на собеседовании
Привет, Хабр!
Сегодня разберём несколько вопросов на собеседованиях, связанных с устройством CPython и его C API.
Вопрос 1: как Python взаимодействует с C через PyObject?
В CPython каждый объект — это C‑структура, унаследованная от базовой:
typedef struct _object {
Py_ssize_t ob_refcnt; // Счётчик ссылок
struct _typeobject *ob_type; // Указатель на тип объекта
} PyObject;
Счётчик ссылок отвечает за управление жизненным циклом объекта. Каждый новый указатель увеличивает счётчик, а при удалении — уменьшается. Когда он достигает нуля, объект уничтожается.
Указатель на тип (далее…)



