Python Glossary English

Python 3.7+contextvarsпонятие

contextvars

модуль

Контекстные переменные: значение, своё у каждой асинхронной задачи и каждого контекста.

Синтаксис

import contextvars

Модуль нужен, когда в асинхронном коде требуется аналог глобальной переменной — идентификатор запроса, текущий пользователь, — не перемешивающийся между задачами. threading.local для этого не годится: все корутины одного потока делят его значение. Значение меняют через set, а откатывают через reset с полученным токеном; каждая задача asyncio получает копию контекста.

Примеры

import contextvars
user = contextvars.ContextVar('user', default='гость')
token = user.set('Аня')
print(user.get())  # → Аня
user.reset(token)
print(user.get())  # → гость

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности