Python задачи и вопросы
1.23K subscribers
427 photos
1 file
153 links
Задачи и вопросы с собеседований по python разного уровня сложности

По рекламе: @cyberJohnny
Download Telegram
Что означает RPO?

👾 — Максимально допустимая длительность простоя
👍 — Цель по времени восстановления сервиса
🥰 — Максимально допустимая потеря данных во времени
⚡️ — Среднее время до отказа

Библиотека задач по Python
Чем корректно отдавать большой поток данных?

👾 — Response с JSON
👍 — StreamingResponse
🥰 — FileResponse всегда загружает весь файл в память
⚡️ — HTMLResponse

Библиотека задач по Python
Что выведет код сверху?

👾 — Ошибок нет
👍 — Деление на ноль!
🥰 — ZeroDivisionError
⚡️ — Ничего

Библиотека задач по Python
Что выведет код?

👾 — 9
👍 — [9, 1, 3]
🥰 — [3, 6]
⚡️ — Error
Библиотека задач по Python
👎1
Что даёт asyncio.TaskGroup по сравнению с gather?

👾 — Запускает задачи параллельно и скрывает исключения
👍 — При первом исключении отменяет остальные, дожидается их и выбрасывает ошибку после with
🥰 — Выполняет задачи строго последовательно
⚡️ — Требует вручную вызывать cancel() для каждой задачи при ошибке
Библиотека задач по Python
Как корректно задать мутируемый дефолт в dataclass?

👾 — items: list[str] = []
👍 — items: list[str] = field(default_factory=list)
🥰 — items как tuple, а в post_init конвертировать в list
⚡️ — Общая для всех экземпляров переменная класса items = []
Библиотека задач по Python
👍1
Зачем использовать contextvars.ContextVar вместо threading.local в async-коде?

👾 — Потому что быстрее при тех же семантиках
👍 — Даёт изоляцию на задачу: значение «течёт» через await внутри Task, но не между задачами/потоками; threading.local изолирует только по потоку и протекает между корутинами
🥰 — Автоматически сериализует состояние между процессами
⚡️ — Разрешает безопасно менять глобальные переменные
Библиотека задач по Python
Что делает __slots__ в классе?

👾 — Делает экземпляры неизменяемыми и хешируемыми
👍 — Убирает dict у экземпляров и запрещает произвольные атрибуты, оставляя только перечисленные слоты (меньше памяти)
🥰 — Превращает класс в dataclass
⚡️ — Включает GIL-оптимизации для всех операций
Библиотека задач по Python
Как в Python 3.11+ выполнить блокирующую функцию из async-кода без доступа к loop?

👾 — await func()
👍 — await asyncio.to_thread(func, *args)
🥰 — time.sleep() внутри корутины
⚡️ — await asyncio.sleep(0) перед вызовом
Библиотека задач по Python
Как перезагрузить импортированный модуль?

Чтобы перезагрузить импортированный модуль в Python, вы можете использовать функцию reload() из модуля importlib.

Замените module_name на фактическое имя модуля, который вы хотите перезагрузить.
Это может быть полезно при разработке и тестировании модулей, но не рекомендуется использовать в производственном коде без серьезных причин.

Библиотека задач по Python
Что выведет код?

👾 — ['Hello', 'World']
👍 — ['HELLO', 'WORLD']
🥰 — ['None', 'None']

Библиотека задач по Python
👍1🎉1
Что выведет код сверху?

👾 — 20
👍 — 45
🥰 — 54
⚡️ — 4.5

Библиотека задач по Python
Чем отличается copy.copy от copy.deepcopy?

👾 — Обе делают глубокую копию
👍 — copy копирует только контейнер, вложенные объекты — по ссылке; deepcopy рекурсивно копирует всё
🥰 — Обе лишь увеличивают счётчик ссылок
⚡️ — deepcopy быстрее, поэтому всегда лучше

Библиотека задач по Python
👍2
👩‍💻 Асинхронное взаимодействие в Python на примере RabbitMQ

Приглашаем на открытый урок.

🗓 10 ноября в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса
«Python Developer. Professional».

Асинхронное взаимодействие — один из ключевых принципов микросервисной архитектуры, который позволяет системам работать быстрее и надёжнее. В Python этот подход реализуется с помощью инструментов, таких как RabbitMQ.

На вебинаре разберём:
✔️ Основы микросервисной архитектуры приложений
✔️ Принципы асинхронного взаимодействия в микросервисной архитектуре
✔️ Практический пример использования RabbitMQ для организации обмена сообщениями между сервисами

В результате вебинара вы:
✔️Поймёте, как работает асинхронное взаимодействие и зачем оно нужно
✔️Научитесь использовать RabbitMQ для построения архитектуры приложений
✔️Узнаете, какие преимущества и ограничения имеет асинхронный подход

🔗 Ссылка на регистрацию: https://clck.ru/3Q5iNP

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576