我需要使dictionary作为上下文变量可用。我曾试图使用@property-setter,但不知道如何在这种情况下正确设置键/值。
我有websockets服务器,我需要使dictionary变量对每个客户端都是唯一的。当然,每次我需要更改dict(即(时,我都可以使用contextvar的get和set方法
d = dict_var.get()
d['key']='val'
dict_var.set(d)
但看起来不是一个好办法
因此,我试图找到正确的方法来使用contextvar和dict,或者如何使dict对于异步任务上下文(websockets服务器是异步的(是唯一的
在我看来,contextvars应该是解决大多数问题的最后手段。在许多情况下,contextvars非常合理,但它并不是每项工作的工具。
拿着这本字典到处传是怎么回事?如果你不想在代码中传递它,那么你可以将它存储在一个中心位置(在另一本字典中,以websocket为键(。
你真的只有两个选择。继续调用.get()
,修改字典并调用.set()
-或者直接在代码中传递字典。