Подборка объединяет вопросы, отмеченные на этапах интервью в Action tech. Здесь можно понять структуру технической проверки и заранее повторить связанные темы. В подборке чаще встречаются темы: linux, python.
В CPython малые целые и некоторые строки могут переиспользовать готовые объекты, но это детали реализации. Для точного алгоритма нужны версия, сборка и способ создания значения.
Гвидо возражал против устранения хвостовых вызовов прежде всего из-за потери понятных traceback и появления зависимости программ от этой оптимизации. Python не гарантирует хвостовую рекурсию без роста глубины.
Frame хранит контекст выполнения функции, включая ссылки на локальные объекты и вызывающий кадр. Сохранённые traceback или frame могут удерживать большой граф объектов и циклы ссылок.
sys.settrace регистрирует функцию, получающую события выполнения Python-кода: вызов, строку, возврат и исключение. Дебаггер использует их для остановок, шагов и исследования frame.
В обычной 64-битной сборке CPython базовый PyObject содержит счётчик ссылок и указатель на тип: часто 16 байт заголовка. Это не универсальный полный размер любого объекта.
global и nonlocal влияют на разрешение имён при компиляции функции. В CPython обращения получают инструкции для глобальных имён или ячеек замыкания вместо обычных локальных переменных.
__getattribute__ участвует в обычном доступе к любому атрибуту, а __getattr__ вызывается как fallback после AttributeError. Поиск учитывает не только __dict__, но и дескрипторы и MRO.