Встречается на собеседованиях • сегодня
Для чего нужны контекстные переменные в asyncio
Контекстные переменные (contextvars) в asyncio позволяют хранить и передавать состояние между асинхронными задачами, сохраняя его даже при переключении контекста выполнения. Они особенно полезны в веб-фреймворках для передачи данных запроса между middleware, хендлерами и другими компонентами без явной передачи через аргументы.
Пример:
python
import contextvars
import asyncio
request_id = contextvars.ContextVar('request_id')
async def handle_request():
print(f"Request ID: {request_id.get()}")
async def middleware():
request_id.set(42) # Устанавливаем значение для текущего контекста
await handle_request()
asyncio.run(middleware()) # Выведет: Request ID: 42Ключевые преимущества:
- Изолированность значений между разными задачами
- Сохранение контекста при
await - Альтернатива глобальным переменным в асинхронном коде
- Поддержка вложенных контекстов через
copy_context()

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы