Архив рубрики ‘Блог компании OTUS’

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; Счётчик ссылок отвечает за управление жизненным циклом […]

unittest.mock: 5 вопросов на собеседовании

Привет, Хабр! Сегодня мы рассмотрим некоторые вопросы про unittest.mock, которые могут всплыть на собеседовании. И перейдем сразу к вопросам. Как замокать атрибуты класса и экземпляра? Задача кажется простой: нужно временно подменить какое‑то значение в объекте. Но что делать, если это атрибут класса, а не экземпляра? Или если атрибут объявлен через @property? Давайте разбираться. Мок атрибута класса Атрибуты класса можно замокать с помощью patch. Важно понимать, […]