0

我想在单独的contextvars.Context中调用一些函数,并在此上下文中由调用者设置一些变量:

def call_with_context(var, callback, **cb_kw):
    context = contextvars.copy_context()
    context.set('var', var)  # not possible
    context.run(callback, **cb_kw)

这样回调和从中调用的任何代码都可以访问varvia并调用回调,并通过调用包装器,这是实现此功能的唯一方法还是我错过了什么(也许设计只需要以不同的方式做一些)?contextvars.copy_context()contextvars.ContextContextVar.set()context.runcontextvars

4

1 回答 1

0

实际上,在检查了建议的相关问题后,我发现这很简单

context.run(var.set, 'var')

这似乎按预期工作。

于 2021-06-04T15:06:50.600 回答