Однако у меня это не работает, или я не до конца понял эту концепцию. Этот фрагмент кода возвращает значение по умолчанию None вместо строки «new_value», на которую я надеялся. Единственный способ добиться этой цели — использовать ctx_var в foo(), но это каким-то образом противоречит цели отсутствия доступа к переменной.
Код: Выделить всё
from contextvars import ContextVar
ctx_var = ContextVar("bar")
token = ctx_var.set("new_value")
def foo():
bar = ContextVar("bar")
bar_value = bar.get(None)
print(bar_value)
foo()
ctx_var.reset(token)
Подробнее здесь: https://stackoverflow.com/questions/798 ... b-function
Мобильная версия