Что делает __all__ в модуле?
👾 — Управляет getattr при отсутствии атрибутов
👍 — Определяет, какие имена экспортируются при from module import *; прямой import module не затрагивает
🥰 — Полностью скрывает имена от любых импортов
⚡️ — Ускоряет импорт, пропуская «лишние» имена
Библиотека задач по Python
👾 — Управляет getattr при отсутствии атрибутов
👍 — Определяет, какие имена экспортируются при from module import *; прямой import module не затрагивает
🥰 — Полностью скрывает имена от любых импортов
⚡️ — Ускоряет импорт, пропуская «лишние» имена
Библиотека задач по Python
Что означает, если __exit__(exc_type, exc, tb) возвращает True?
👾 — Исключение пробрасывается дальше
👍 — Исключение подавляется, блок with не выбросит его наружу
🥰 — Контекстный менеджер перезапускает тело with
⚡️ — Тип исключения меняется на RuntimeError
Библиотека задач по Python
👾 — Исключение пробрасывается дальше
👍 — Исключение подавляется, блок with не выбросит его наружу
🥰 — Контекстный менеджер перезапускает тело with
⚡️ — Тип исключения меняется на RuntimeError
Библиотека задач по Python
Что будет у functools.lru_cache, если аргумент не хешируемый (например, list)?
👾 — Автоматически скопирует и захеширует любой аргумент
👍 — Построит ключ из args/kwargs; при нехешируемом аргументе бросит TypeError на вызове
🥰 — Нехешируемые аргументы игнорируются при ключе
⚡️ — Учитывает только позиционные аргументы, kwargs игнорируются
Библиотека задач по Python
👾 — Автоматически скопирует и захеширует любой аргумент
👍 — Построит ключ из args/kwargs; при нехешируемом аргументе бросит TypeError на вызове
🥰 — Нехешируемые аргументы игнорируются при ключе
⚡️ — Учитывает только позиционные аргументы, kwargs игнорируются
Библиотека задач по Python
Что представляют собой генераторы в Python, как функционирует метод send() в этих генераторах и каким образом его можно применять для управления их поведением?
Генераторы в Python представляют собой функции, которые применяют оператор yield для возврата значений и временной приостановки выполнения. С помощью метода send() можно отправлять данные обратно в генератор, которые затем могут быть использованы при следующем возобновлении его работы. Это делает генераторы двусторонними, позволяя не только получать значения, но и передавать данные внутрь.
Библиотека задач по Python
Генераторы в Python представляют собой функции, которые применяют оператор yield для возврата значений и временной приостановки выполнения. С помощью метода send() можно отправлять данные обратно в генератор, которые затем могут быть использованы при следующем возобновлении его работы. Это делает генераторы двусторонними, позволяя не только получать значения, но и передавать данные внутрь.
Библиотека задач по Python
В Django-приложении при росте нагрузки база данных начинает работать медленно из-за большого числа однотипных SQL-запросов. Какой подход наиболее правильный для оптимизации?
👾 — Использовать select_related / prefetch_related для снижения количества запросов
👍 — Переписать все запросы ORM на raw() SQL
🥰 — Увеличить таймаут подключения к базе
⚡️ — Добавить больше воркеров Gunicorn/Uvicorn, чтобы база обрабатывала запросы быстрее
Библиотека задач по Python
👾 — Использовать select_related / prefetch_related для снижения количества запросов
👍 — Переписать все запросы ORM на raw() SQL
🥰 — Увеличить таймаут подключения к базе
⚡️ — Добавить больше воркеров Gunicorn/Uvicorn, чтобы база обрабатывала запросы быстрее
Библиотека задач по Python
👍1
Все подклассы являются подтипами в объектно-ориентированном программировании.
👾 — True
⚡️ — False
Библиотека задач по Python
👾 — True
⚡️ — False
Библиотека задач по Python
В Python при сравнении объектов с оператором is и == есть разница. Что наиболее корректно?
👾 — is сравнивает значения объектов, а == — их идентичность в памяти
👍 — is проверяет идентичность (один и тот же объект в памяти), == — равенство значений
🥰 — Оба оператора работают одинаково, разницы нет
⚡️ — is всегда быстрее и потому используется вместо ==
Библиотека задач по Python
👾 — is сравнивает значения объектов, а == — их идентичность в памяти
👍 — is проверяет идентичность (один и тот же объект в памяти), == — равенство значений
🥰 — Оба оператора работают одинаково, разницы нет
⚡️ — is всегда быстрее и потому используется вместо ==
Библиотека задач по Python
👍1
Ваш Python-сервис должен обрабатывать большое количество одновременных HTTP-запросов. Вы замечаете, что при использовании потоков прироста производительности почти нет. Какой подход наиболее правильный?
👾 — Увеличить количество потоков в ThreadPoolExecutor, чтобы нагрузить CPU
👍 — Перейти на asyncio или uvloop, чтобы эффективно обрабатывать I/O-bound задачи без блокировок
🥰 — Использовать multiprocessing, создавая процесс на каждый запрос
⚡️ — Запускать gc.collect() вручную чаще, чтобы ускорить выполнение потоков
Библиотека задач по Python
👾 — Увеличить количество потоков в ThreadPoolExecutor, чтобы нагрузить CPU
👍 — Перейти на asyncio или uvloop, чтобы эффективно обрабатывать I/O-bound задачи без блокировок
🥰 — Использовать multiprocessing, создавая процесс на каждый запрос
⚡️ — Запускать gc.collect() вручную чаще, чтобы ускорить выполнение потоков
Библиотека задач по Python
В Python-сервисе нужно обрабатывать очень большие объёмы данных построчно из файлов размером в десятки гигабайт. Какой подход наиболее правильный, чтобы избежать проблем с памятью?
Варианты ответа:
👾 — Использовать readlines() для чтения всего файла в список
👍 — Читать файл построчно через итератор (for line in file:)
🥰 — Сначала загрузить файл в pandas.DataFrame, а затем обрабатывать
⚡️ — Использовать json.load() для загрузки файла в память
Библиотека задач по Python
Варианты ответа:
👾 — Использовать readlines() для чтения всего файла в список
👍 — Читать файл построчно через итератор (for line in file:)
🥰 — Сначала загрузить файл в pandas.DataFrame, а затем обрабатывать
⚡️ — Использовать json.load() для загрузки файла в память
Библиотека задач по Python
У вас есть Python-сервис, обрабатывающий большие объёмы данных. При профилировании видно, что программа тратит много времени на создание временных коллекций при работе с map, filter и list comprehensions. Какой подход поможет уменьшить расход памяти и повысить эффективность?
👾 — Переписать код на while-циклы с индексами
👍 — Использовать генераторы и выражения-генераторы вместо создания списков
🥰 — Заменить map и filter на вложенные for-циклы
⚡️ — Принудительно вызывать gc.collect() после каждой итерации
Библиотека задач по Python
👾 — Переписать код на while-циклы с индексами
👍 — Использовать генераторы и выражения-генераторы вместо создания списков
🥰 — Заменить map и filter на вложенные for-циклы
⚡️ — Принудительно вызывать gc.collect() после каждой итерации
Библиотека задач по Python
Что будет у functools.lru_cache, если аргумент не хешируемый (например, list)?
👾 — Автоматически скопирует и захеширует любой аргумент
👍 — Построит ключ из args/kwargs; при нехешируемом аргументе бросит TypeError на вызове
🥰 — Нехешируемые аргументы игнорируются при ключе
⚡️ — Учитывает только позиционные аргументы, kwargs игнорируются
Библиотека задач по Python
👾 — Автоматически скопирует и захеширует любой аргумент
👍 — Построит ключ из args/kwargs; при нехешируемом аргументе бросит TypeError на вызове
🥰 — Нехешируемые аргументы игнорируются при ключе
⚡️ — Учитывает только позиционные аргументы, kwargs игнорируются
Библиотека задач по Python
В чем разница между модулем и пакетом в Python?
Каждый файл программы на Python является модулем, который может импортировать другие модули в виде объектов. Таким образом, модуль служит способом организации вашей программы. Папка, содержащая программу на Python, называется пакетом модулей.
Библиотека задач по Python
Каждый файл программы на Python является модулем, который может импортировать другие модули в виде объектов. Таким образом, модуль служит способом организации вашей программы. Папка, содержащая программу на Python, называется пакетом модулей.
Библиотека задач по Python