Система уведомлений в Django
Наследники не реализуют общий send(message), а базовый метод молча ничего не делает. Нужен единый интерфейс отправителя, реальные реализации send и передача экземпляра, а не класса.
Читать ответПодготовка к интервью
3221 вопрос в категории «Лайвкодинг»
Что проверяют на интервью
В этой подборке вопросы сгруппированы по формату «Лайвкодинг», чтобы подготовку можно было вести от базовых тем к практическим задачам. В подборке чаще встречаются темы: frontend, browser, database.
Каталог
Наследники не реализуют общий send(message), а базовый метод молча ничего не делает. Нужен единый интерфейс отправителя, реальные реализации send и передача экземпляра, а не класса.
Читать ответСоздайте обёртку с *args и **kwargs, напечатайте сообщение, затем вызовите исходную функцию и верните её результат. wraps сохранит имя, описание и ссылку на оригинал.
Читать ответОбходите дерево по уровням и заново вычисляйте сумму каждого уровня. Последняя полученная сумма — сумма самых глубоких листьев: узлы максимальной глубины не имеют детей.
Читать ответСписок по умолчанию создаётся один раз при определении функции, а не заново при каждом вызове. Поэтому последующие вызовы без my_list продолжают изменять и возвращать тот же список.
Читать ответИспользуйте LEFT JOIN сотрудников к отделам, GROUP BY и HAVING AVG(salary) > 100000. Но числа в ожидаемом выводе перепутаны: по данным финансовый отдел имеет 112500, а группа без отдела — 130000.
Читать ответЯвно нарушен SRP: Invoice смешивает данные счёта, PDF, запросы БД и аналитику. Есть зависимость от глобальных конкретных сервисов, а также ошибки среднего значения и форматирования строки.
Читать ответСоздайте пул PostgreSQL на время жизни приложения и выполняйте SQL в /menu через полученное из пула соединение. Не открывайте неограниченное число соединений и не блокируйте async-обработчик синхронным драйвером.
Читать ответПри наличии import asyncio порядок будет 1, 3, 2. main-подобная run_all ждёт завершения coroutine_a, затем печатает 3 и только после этого запускает coroutine_b.
Читать ответПоддерживайте окно без повторов и последнюю позицию каждого символа. При повторном символе сдвигайте начало окна вправо за прежнюю позицию и обновляйте максимальную длину.
Читать ответВыражение sum(number % 2 == 0 for number in [12, 1, 55, 7, 8]) вернёт 2. Чётные элементы здесь — 12 и 8; суммируются булевы результаты проверок.
Читать ответПри стандартной JSON-сериализации Celery экземпляр Django User передать нельзя. Передавайте первичный ключ и загружайте актуальную модель внутри задачи; создание новой записи согласуйте с commit.
Читать ответСоедините campaigns → ads → creatives и сгруппируйте по кампании с HAVING COUNT(cr.id) >= 2. Считать нужно креативы по всем объявлениям кампании, а не число самих объявлений.
Читать ответ