Русский
Открыть в Telegram

ПостПочему копия контекста не делает словарь отдельным

11 октября 2026
Z
Zen of Python
Фотография
нажмите — покажем
Почему копия контекста не делает словарь отдельным contextvars помогает хранить request ID для задач, которые выполняются на одном потоке event loop. При обычном создании asyncio.Task контекст копируется, поэтому новая задача получает текущую привязку переменной. Но копия контекста поверхностная. Если ContextVar содержит словарь, родитель и дочерняя задача могут видеть один объект. Изменение его содержимого будет общим; set с новым значением меняет привязку в текущем контексте. Для метаданных запроса удобнее неизменяемые значения. После set сохраняйте токен и восстанавливайте предыдущую привязку через reset в finally. Дочерняя задача может сохранить захваченный контекст и после завершения запроса, поэтому долгоживущей фоновой работе передавайте только необходимые данные. #python #asyncio
4 · 1K ·

Рядом в ленте

ZZen of PythonКак проверить, что мок заменил нужную зависимость Если service.py делает from client import fetch, функция использует имя service.fetch. Патч client.fetch не заZZen of PythonПочему короткие паузы сборщика мусора обходятся памятью В CPython подсчёт ссылок освобождает многие объекты сразу, а циклический GC ищет недостижимые циклы. Сок
это сообщение
ZZen of PythonПочему тайм-аут не всегда заканчивается ровно по часам asyncio.TaskGroup владеет созданными в нём задачами и ждёт их завершения. Если одна падает с обычным исклZZen of PythonЧто мешает запускать Python из снимка памяти Импорты и инициализация повторяются при каждом старте интерпретатора. Снимок уже подготовленного процесса мог бы пр

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Границы индекса · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем