0

我需要将字典作为上下文变量提供。我试图使用@property setter,但不明白在这种情况下如何正确设置键/值。

我有 websockets 服务器,我需要让每个客户端的字典变量都是唯一的。当然,每次我需要更改 dict 时,我都可以使用 contextvar 的getset方法,即

d = dict_var.get()
d['key']='val'
dict_var.set(d)

但这看起来不是一个好方法

因此,我正在尝试找到正确的方法来了解如何将 contextvar 与 dict 一起使用,或者如何使 dict 对于异步任务上下文是唯一的(websockets 服务器是异步的)

4

1 回答 1

0

在我看来,上下文变量应该是解决大多数问题的最后手段。在很多情况下,contextvars 非常有意义,但它并不是适用于所有工作的工具。

拥有这本字典并传递它有什么问题?如果您不想在代码中传递它,那么您可以将它存储在一个中心位置(在另一个字典中,以 websocket 作为键)。

你真的只有两个选择。继续调用.get(),修改字典并调用.set()- 或直接在代码中传递字典。

于 2022-01-28T21:53:16.950 回答