我如何在python 3.7或更高版本的其他文件中使用上下文变量?



我在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

相关内容

  • 没有找到相关文章

最新更新