Я совершенно новичок в asyncio и ContextVars
, я только что прочитал, что нового в 3.7 и обнаружил ContextVars
, я изо всех сил пытаюсь понять, как он используется, все, что я знаю, это полезно в сопрограммах, вместо использования thread.local
следуетиспользуйте ContextVars
.Но ни один из официальных результатов поиска в doc и top google не может помочь мне по-настоящему понять его назначение.
Итак, являются ли выпуклые столбцы общими для всех модулей?Я попытался:
example.py
from contextvars import ContextVar
number = ContextVar('number', default=100)
number.set(1)
, затем я пытаюсь импортировать number.py
(playground) Jamess-MacBook-Pro-2:playground jlin$ python3.7
Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 26 2018, 23:26:24)
[Clang 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import example
>>> from contextvars import ContextVar
>>> number = ContextVar('number', default=200)
>>> number.get()
200
Я ожидал, что number.get()
вернет 1, но, очевидно,Я неправильно понял его цель.
Может кто-нибудь помочь мне понять это?