我在a.py文件中有一个context var,我想在b.py中使用它。
a.py:
import contextvars
cntx = contextvars.ContextVar("abcd")
b.py:
from .a import cntx
print(cntx.get())
错误:
Traceback (most recent call last):
File "/home/user/Desktop/b.py", line 1, in <module>
from .a import cntx
ImportError: attempted relative import with no known parent package
这不是上下文变量应该如何工作吗?我正在使用python 3.9
您得到的ImportError
是因为无效的文件名。.a
是一个有效的文件名,如果您有一个文件名为.a.py
的文件,则可以工作。您获得LookupError: <ContextVar name='abcd' at 0x7f7d6209c5e0>
的原因是因为您正在尝试get()
尚未设置的上下文。
get ()方法如果之前没有设置上下文将引发LookupError。
a.py:
import contextvars
cntx = contextvars.ContextVar("abcd")
cntx.set("example")
b.py:
from a import cntx
print(cntx.get())
当你运行b.py
-
输出:
example