Python 上下文变量

上下文变量可以根据其上下文具有不同的值。与每个执行线程可能具有不同变量值的线程本地存储不同,上下文变量可能是一个执行线程中的多个上下文。这对于跟踪并发异步任务中的变量很有用。

ContextVar 类用于声明和使用上下文变量。

import contextvars

name = contextvars.ContextVar("name", default = 'Hello')

当在当前上下文中找不到变量的值时,将返回可选的默认参数。ContextVar.get()

名称:变量的名称。这是一个只读属性。

ContextVar 类中定义了以下方法

get()返回当前上下文的上下文变量的值。如果当前上下文中没有该变量的值,则该方法将 -
  • 返回方法的默认参数的值(如果提供) - 或

  • 返回上下文变量的默认值,如果它是用一个创建的 - 或者

  • 引发 LookupError。

set()调用以在当前上下文中为上下文变量设置新值。
reset()将上下文变量重置为使用创建令牌之前的值。ContextVar.set()

上下文变量模块中的上下文类是上下文变量到它们的值的映射。

Context():创建一个没有值的空上下文。

要获取当前上下文的副本,请使用该copy_context()函数。

run(callable, *args, **kwargs) 方法在调用 run 方法的上下文对象中执行 callable(*args, **kwargs) 代码并返回执行结果。对 callable 所做的任何上下文变量的任何更改都将包含在上下文对象中。当从多个 OS 线程调用同一个上下文对象时,或递归调用时,该方法会引发 RuntimeError。

copy()返回上下文对象的浅拷贝。
context[var]返回 var ContextVar 变量的值。如果变量未在上下文对象中设置,则会引发键错误。
get()如果上下文对象中有值,则返回上下文变量的值。否则返回默认值。如果未给出默认值,则返回 None。
iter()返回存储在上下文对象中的变量的迭代器。
len()返回上下文对象中设置的变量数。
keys()返回上下文对象中所有变量的列表。
values()返回上下文对象中所有变量值的列表。
    items()返回包含上下文对象中所有变量及其值的 2 元组列表。

以上是 Python 上下文变量 的全部内容, 来源链接: utcz.com/z/361822.html

回到顶部