es
Feedback

¡No caigas en manos de tramposos! Telemetrio encuentra y marca estos canales 👉 Si quieres ver la etiqueta, suscríbete

Библиотека собеса по Python | вопросы с собеседований

Библиотека собеса по Python | вопросы с собеседований

Ir al canal en Telegram

Вопросы с собеседований по Python и ответы на них. Учиться у нас: https://clc.to/VcaMmg По рекламе: @tproger_sales_bot Для обратной связи: @proglibrary_feeedback_bot

Mostrar más
5 860
Suscriptores
+424 horas
-97 días
-4530 días
Archivo de publicaciones
В продакшн Django-приложении пользователи жалуются на «N+1 проблему» при выборках связанных объектов. Как вы будете диагностировать и устранять её? Проверю SQL-запросы через django-debug-toolbar или логирование ORM. Если вижу множественные запросы для связанных моделей — перепишу код с использованием select_related (для ForeignKey/OneToOne) или prefetch_related (для ManyToMany/Reverse FK). При необходимости — вынесу тяжёлые выборки в кастомные SQL-запросы или оптимизирую структуру модели. Библиотека собеса по Python

В чем смысл параметров _value, __value? _value — одиночное подчеркивание в начале имени означает, что этот параметр не предназначен для использования outside функции. Это соглашение, а не ограничение языка. __value — двойное подчеркивание означает, что это имя зарезервировано Python и используется для специальных целей, например init для конструктора класса. Такие параметры могут выполнять какие-то дополнительные действия. Библиотека собеса по Python

Как профилировать производительность в проде без сильного оверхеда? Используйте сэмплирующие профилировщики без остановки процесса (py-spy, perf, eBPF) для CPU/wall-time и флеймграфов; для памяти — tracemalloc со снапшотами; для async — метрики event loop (slow callbacks) и трассинг (OpenTelemetry). Профилируйте под реальной нагрузкой, фиксируйте p95/p99, меняйте код точечно. Библиотека собеса по Python

Назовите примеры изменяемых и неизменяемых объектов. Неизменяемые объекты нельзя изменить после создания, примеры — строки, кортежи, int, float. Противоположны им изменяемые объекты, например list, dict, set. Библиотека собеса по Python

Как используется конструкция try — except? Какие ещё блоки для обработки исключений существуют? try: Этот блок используется, чтобы обернуть код, который может вызвать исключение. except: В этом блоке пишется код, который будет выполнен, если в блоке try возникнет исключение. Можно указать несколько блоков except. else: Этот блок выполняется, если в блоке try не возникло исключений, то есть всё сработало без ошибок. finally: Данный блок выполняется всегда после try, except и else, независимо от того, появилось исключение или нет (например, содержит инструкцию по закрытию файла). Библиотека собеса по Python

Разница между Django OneToOneField и ForeignKey Field? Оба они являются наиболее распространенными типами полей, используемых в Django. Единственное различие между ними заключается в том, что поле ForeignKey состоит из параметра on_delete вместе с классом модели, поскольку оно используется для отношений «многие к одному», тогда как, с другой стороны, OneToOneField реализует только отношение «один к одному» и требует только класс модели. Библиотека собеса по Python

Как изменить тип данных списка? Для изменения типа данных в списке можно использовать встроенные функции: 1. map() — применяет указанную функцию к каждому элементу списка и возвращает новый список с измененными элементами: old_list = [1, 2, 3] new_list = map(str, old_list) В новом списке все элементы будут строкового типа. 2. Использование генераторного выражения: old_list = [1, 2, 3] new_list = [str(x) for x in old_list] Здесь мы преобразуем элементы в строку и помещаем в новый список. Также можно применить конструкцию map к генераторному выражению: new_list = list(map(str, [1, 2, 3])) Библиотека собеса по Python

Какой метод использовался до оператора in для проверки наличия ключа в словаре? До появления оператора in в Python, чтобы проверить, содержит ли словарь определенный ключ, использовался метод словаря has_key(). Этот метод принимал в качестве аргумента проверяемый ключ и возвращал логическое значение - True, если ключ присутствовал в словаре, и False - если нет. В Python 2.5 появился более понятный и краткий оператор in, поэтому сейчас рекомендуется использовать именно его, а has_key() считается устаревшим. Библиотека собеса по Python

Что такое Docstring? Docstring (дословно «строка документации») — это строка, которая используется для документирования модулей, функций, классов и методов в вашем коде. Она представляет собой строковый литерал, который следует сразу после определения элемента кода и предназначен для объяснения, как работает этот элемент, какие аргументы он принимает, какие значения возвращает и другие важные детали. Обычно docstring располагается в самом верхнем уровне определения элемента кода и заключается в тройные кавычки (одинарные или двойные). Библиотека собеса по Python

Какое расширение используется для подключения к базе данных во Flask? Расширение улучшает управление базами данных и взаимодействие с ними во время разработки, устраняя необходимость написания простых SQL-запросов. PostgreSQL, SQLite и MySQL — лишь некоторые из поддерживаемых Flask СУБД. Для подключения к базам данных требуется плагин Flask-SQLAlchemy. Библиотека собеса по Python

Как получить IP-адрес посетителя в Flask? Ответ: Чтобы получить IP-адрес посетителя во Flask, мы используем метод request.remote_addr. Ниже представлена его реализация.
from flask import Flask, request

app = Flask(__name__)

@app.route('/')
def get_visitor_ip():
    visitor_ip = request.remote_addr
    return f"Visitor's IP address is: {visitor_ip}"

if __name__ == '__main__':
    app.run(debug=True)
Библиотека собеса по Python

Как сделать идемпотентное создание записи при гонке (двойной запрос) в Django? Ввести уникальный бизнес-ключ (UniqueConstraint), обернуть в transaction.atomic(), использовать get_or_create() либо create() с перехватом IntegrityError и затем get(). Не делать предварительных exists(). При зависимостях — лочить родителя select_for_update(). Библиотека собеса по Python

В высоконагруженном Python-сервисе вы замечаете, что при увеличении числа потоков скорость обработки CPU-bound задач не растёт. Почему так происходит и как это исправить? Из-за GIL только один поток выполняет байткод одновременно, поэтому многопоточность не ускоряет CPU-bound задачи. Решение — использовать multiprocessing, вынести тяжёлые вычисления в C-расширения или применять библиотеки вроде NumPy, которые обходят GIL. Библиотека собеса по Python

У вас есть Python-сервис, который обрабатывает асинхронные запросы через asyncio. При нагрузочном тесте задержки начинают расти, хотя CPU и память почти не используются. В чём может быть причина и как её решать? Скорее всего, внутри event loop есть блокирующие операции (синхронные вызовы к БД, файлам или тяжёлые вычисления). Их нужно вынести в отдельный процесс или поток (ProcessPoolExecutor/ThreadPoolExecutor) либо заменить на асинхронные аналоги библиотек. Библиотека собеса по Python

В продакшн-Django приложении пользователи жалуются на долгие ответы при большом количестве одновременных запросов. Как вы будете диагностировать и устранять проблему? Проверю профилировщиком SQL-запросы (Django Debug Toolbar, New Relic, Sentry APM), чтобы найти N+1 или долгие join. Оптимизирую ORM через select_related / prefetch_related, добавлю кеширование (Redis, Memcached), connection pooling, а также настрою правильный backend для деплоя (Gunicorn/Uvicorn с несколькими воркерами). Библиотека собеса по Python

Как проектировать стабильный библиотечный API с минимальными ломаниями? Семвер и строгие контракты типов (PEP 561, точные аннотации), устойчивые имена/аргументы, собственная иерархия исключений, чёткая политика деприкаций (warning → снятие через N минорных версий), стабильные сериализационные форматы, разделение sync/async API без «магии», детерминированные побочные эффекты, зафиксированные минимальные версии зависимостей и хорошее версиирование схем. Библиотека собеса по Python

Как FastAPI обрабатывает зависимости с Depends, и как происходит их разрешение в контексте асинхронных и синхронных функций? FastAPI строит граф зависимостей рекурсивно при старте приложения. При обработке запроса оно вызывает зависимости в порядке topological sort. Асинхронные зависимости вызываются с await, синхронные — через обычный вызов. FastAPI автоматически определяет тип зависимости по сигнатуре. Повторно используемые зависимости кэшируются внутри одного запроса. Исключения в зависимостях прерывают цепочку и оборачиваются в HTTP-ответ. Библиотека собеса по Python

В Kubernetes-продакшене пользователи жалуются, что при резком росте нагрузки часть запросов теряется или обрабатывается с большим лагом. Как вы будете искать и решать проблему? Проверю метрики Pod’ов и нод (CPU/memory), события в кластере и логи ingress-контроллера. Удостоверюсь, что настроены requests/limits, HPA для автоматического масштабирования и readinessProbe, чтобы трафик шёл только на готовые Pod’ы. Для решения — оптимизировать ресурсы, включить горизонтальное или кластерное авто-масштабирование, при необходимости добавить очередь (Kafka/RabbitMQ) для сглаживания пиков. Библиотека собеса по Python

😱 Если ваш продукт не умеет отдавать данные в формате, понятном AI-агенту, то вас просто не существует Скрипт не будет кликать по красивым кнопкам в браузере, он уйдёт к конкуренту с нормальным API. Перестроить архитектуру под машинных клиентов — это уже не хайп, а необходимое условие сохранения конкурентоспособности. Как адаптировать продукт и не исчезнуть из выдачи: — интегрировать MCP и A2A-взаимодействие, чтобы агенты могли вас читать; — научиться контролировать стоимость (лимиты, кэш, роутинг между моделями); — настроить AgentOps: трейсинг, логирование и отлов регрессий. Всё это ждёт вас на обновлённом курсе «Разработка AI-агентов». Мы специально сделали фокус на утилитарном инжиниринге и production-ready решениях. Кстати, до 29 марта можно забрать курс с большой скидкой, и стоит поторопиться — мест на потоке всё меньше. Зафиксировать цену и начать деплоить агентов без слива бюджета 👈

В асинхронном Python-сервисе (asyncio) при росте нагрузки резко увеличиваются задержки отклика, хотя CPU и память не перегружены. В чём может быть причина и как её диагностировать? Чаще всего дело в блокирующем коде внутри event loop (синхронные вызовы, тяжёлые вычисления или блокирующие I/O). Диагностировать можно профилировщиками (async-profiler, aiomonitor, trio-asyncio) и логированием длительных задач. Решение — вынести CPU-bound операции в ProcessPoolExecutor, заменить блокирующие вызовы на асинхронные аналоги или рефакторить архитектуру. Библиотека собеса по Python