TGViewer
Python: задачки и вопросы Python: задачки и вопросы @quiz_python · 6.93K subscribers
Post #4895 158
Python: задачки и вопросы
Развёрнутое пояснение:

1. Создаётся контекстная переменная request_id без значения по умолчанию.

2. В задаче main переменной request_id присваивается значение A.

3. asyncio.create_task создаёт задачу audit и копирует в неё текущий контекст, где request_id равен A.

4. Затем main меняет request_id на B только в собственном контексте.

5. Когда запускается audit, она читает свою копию контекста и печатает A.

Почему это важно

ContextVar применяется для хранения идентификаторов запросов, данных трассировки и другого состояния асинхронной операции. Контекст задачи фиксируется при её создании, поэтому изменение переменной перед фактическим запуском задачи не обновляет уже скопированный контекст.
  • ✍ 1
More from @quiz_python
  1. Sep 25, 2026Развёрнутое пояснение: 1. defaultdict(int) создаёт словарь, в котором фабрика int возвраща…
  2. Sep 25, 2026Post #4896
  3. Sep 25, 2026Post #4894
  4. Sep 24, 2026Развёрнутое пояснение: 1. Для класса Client строится порядок разрешения методов: Client, A…
  5. Sep 24, 2026Post #4892
  6. Sep 24, 2026Развёрнутое пояснение: 1. asyncio.run запускает цикл событий и начинает выполнять main. 2.…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →