Подготовка к интервью

Банк вопросов с собеседований

Разбирайте реальные вопросы, сверяйтесь с подробными ответами и готовьтесь по технологиям и компаниям.

1254 вопроса 1634 компании 353 технологии

Усильте резюме перед собеседованием

Проверьте, насколько резюме подходит выбранной позиции, и получите рекомендации по улучшению.

Анализ резюме
Сбросить

Каталог

Результаты поиска

Найдено: 1254
Теория

[имя] спросил: Зачем нужен GIL в Python, и какие есть способы запускать Python параллельно?

В обычной CPython-сборке GIL защищает внутреннюю работу с объектами, но ограничивает параллельное исполнение Python-кода потоками. Для CPU-задач используют процессы, нативные расширения или free-threaded сборку.

Читать ответ
Теория

В чем разница между распаковкой кортежей и доступом по индексу в Python?

Распаковка присваивает элементы нескольким именам и проверяет ожидаемую структуру, а индексирование извлекает отдельную позицию. Распаковка работает не только с кортежами, но и с другими iterable.

Читать ответ
Лайвкодинг

Напишите функцию get(obj, path), которая принимает объект obj и строку path, представляющую путь к вложенному значению в этом объекте. Путь состоит из ключей, разделённых точкой ( . ).

Последовательно проходите ключи пути и проверяйте наличие каждого в текущем объекте. В условии смешаны JavaScript undefined и Python-шаблон; ниже приведены оба согласованных варианта.

Читать ответ
Теория

Можно ли написать асинхронный сервер в Python без asyncio?

Да: асинхронный сервер можно построить на неблокирующих сокетах и selectors или использовать другую event-loop-библиотеку. Asyncio — готовая реализация, а не единственный способ конкурентного I/O.

Читать ответ
Теория

Зачем нужен super() в Python?

super() возвращает прокси для поиска следующей реализации по MRO, а не просто обращение к прямому родителю. Это позволяет строить согласованные цепочки вызовов при наследовании.

Читать ответ
Теория

Как решить проблему N+1 запросов при сложной агрегации без выгрузки всех связанных строк в Python?

Перенесите агрегацию в SQL: GROUP BY, агрегатный подзапрос, оконную функцию или заранее агрегированную таблицу. Prefetch всех дочерних строк убирает N+1, но не решает избыточную передачу данных.

Читать ответ
Теория

Почему стандартная функция Python os.cpu_count() внутри Docker-контейнера, запущенного в Kubernetes-поде с ограничением CPU: 2, часто возвращает общее количество ядер физического сервера, например 64? К каким критическим проблемам с размером пула потоков Gunicorn или Celery это приводит и как это исправить?

CPU-квота cgroup ограничивает время выполнения, а не обязательно видимое число процессоров. Поэтому os.cpu_count() может видеть 64 CPU, хотя контейнеру разрешено лишь 2 CPU-времени.

Читать ответ
Теория

Понимаю. Можете ли вы рассказать, что такое корутина в Python и как она отличается от обычной функции?

Корутина — выполнение, которое может приостанавливаться и продолжаться. В Python вызов async def создаёт coroutine object; обычная функция выполняется сразу и возвращает результат.

Читать ответ
Теория

Как механизмы Linux Cgroups (Control Groups) и Namespaces формируют изоляцию внутри Docker-контейнера? Что происходит с Python-процессом, когда он превышает лимит resources.limits.cpu в Kubernetes, и почему превышение limits.memory приводит к OOMKilled, а превышение CPU — только к троттлингу?

Namespaces изолируют представление процессов, сети и файловых систем; cgroups учитывают и ограничивают ресурсы. CPU-лимит ограничивает доступное процессорное время, а память нельзя просто отложить.

Читать ответ
Теория

Что такое контекстные менеджеры в Python, для чего и где они используются?

Контекстный менеджер управляет входом и выходом из блока with: открытием и закрытием ресурса, захватом и освобождением блокировки. Он вызывает __enter__ и __exit__.

Читать ответ