Python Glossary Русский

Python 3.7+contextvarsterm

contextvars.Token

context variables

The object returned by ContextVar.set(): it remembers the previous value and is used to roll it back with reset().

Syntax

token = var.set(value); var.reset(token)

reset(token) restores the value from before set(), and if there was none it makes the variable empty again — a plain set(old) cannot do that. A token is single-use: a second reset() raises RuntimeError, and a token from another context raises ValueError. old_value is Token.MISSING when there was no value. Since Python 3.14 a token is a context manager: with var.set(x): rolls the value back for you.

Examples

import contextvars
level = contextvars.ContextVar('level', default='info')
token = level.set('debug')
print(level.get())  # → debug
level.reset(token)
print(level.get())  # → info
try:
    level.reset(token)
except RuntimeError:
    print('токен уже использован')  # → токен уже использован
# Python 3.14+
import contextvars
level = contextvars.ContextVar('level', default='info')
with level.set('debug'):
    print(level.get())  # → debug
print(level.get())  # → info

See also

Open in the full glossarydocs.python.orgReport an inaccuracy