当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python contextvars.Context.run用法及代码示例


用法:

run(callable, *args, **kwargs)

在调用run 方法的上下文对象中执行callable(*args, **kwargs) 代码。如果发生异常,则返回执行结果或传播异常。

callable 对任何上下文变量所做的任何更改都将包含在上下文对象中:

var = ContextVar('var')
var.set('spam')

def main():
    # 'var' was set to 'spam' before
    # calling 'copy_context()' and 'ctx.run(main)', so:
    # var.get() == ctx[var] == 'spam'

    var.set('ham')

    # Now, after setting 'var' to 'ham':
    # var.get() == ctx[var] == 'ham'

ctx = copy_context()

# Any changes that the 'main' function makes to 'var'
# will be contained in 'ctx'.
ctx.run(main)

# The 'main()' function was run in the 'ctx' context,
# so changes to 'var' are contained in it:
# ctx[var] == 'ham'

# However, outside of 'ctx', 'var' is still set to 'spam':
# var.get() == 'spam'

当从多个 OS 线程对同一上下文对象调用或递归调用时,该方法会引发 RuntimeError

相关用法


注:本文由纯净天空筛选整理自python.org大神的英文原创作品 contextvars.Context.run。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。