上下文��对象¶

在 3.7.1 版本�生�更:

备注

在 Python 3.7.1 中,所有上下文�� C API 的签�被 更改 为使用 PyObject 指针而�是 PyContext, PyContextVar 以� PyContextToken,例如:

// in 3.7.0:
PyContext *PyContext_New(void);

// in 3.7.1+:
PyObject *PyContext_New(void);

请�阅 bpo-34762 了解详情。

在 3.7 版本加入.

本节深入介�了 contextvars 模�的公用 C API。

type PyContext¶

用于表示 contextvars.Context 对象的 C 结构体。

type PyContextVar¶

用于表示 contextvars.ContextVar 对象的 C 结构体。

type PyContextToken¶

用于表示 contextvars.Token 对象的 C 结构体。

PyTypeObject PyContext_Type¶

表示 context 类型的类型对象。

PyTypeObject PyContextVar_Type¶

表示 context variable 类型的类型对象。

PyTypeObject PyContextToken_Type¶

表示 context variable token 类型的类型对象。

类型检查�:

int PyContext_CheckExact(PyObject *o)¶

如果 o 的类型为 PyContext_Type 则返回真值。 o 必须�为 NULL。 此函数总是会�功执行。

int PyContextVar_CheckExact(PyObject *o)¶

如果 o 的类型为 PyContextVar_Type 则返回真值。 o 必须�为 NULL。 此函数总是会�功执行。

int PyContextToken_CheckExact(PyObject *o)¶

如果 o 的类型为 PyContextToken_Type 则返回真值。 o 必须�为 NULL。 此函数总是会�功执行。

上下文对象管�函数:

PyObject *PyContext_New(void)¶
返回值:新的引用。

创建一个新的空上下文对象。 如果�生错误则返回 NULL。

PyObject *PyContext_Copy(PyObject *ctx)¶
返回值:新的引用。

创建所传入的 ctx 上下文对象的浅拷�。 如果�生错误则返回 NULL。

PyObject *PyContext_CopyCurrent(void)¶
返回值:新的引用。

创建当�线程上下文的浅拷�。 如果�生错误则返回 NULL。

int PyContext_Enter(PyObject *ctx)¶

将 ctx 设为当�线程的当�上下文。 �功时返回 0,出错时返回 -1。

int PyContext_Exit(PyObject *ctx)¶

�消激活 ctx 上下文并将之�的上下文��为当�线程的当�上下文。 �功时返回 0,出错时返回 -1。

上下文��函数:

PyObject *PyContextVar_New(const char *name, PyObject *def)¶
返回值:新的引用。

创建一个新的 ContextVar 对象。 形� name 用于自我检查和调试目的。 形� def 为上下文��指定默认值,或为 NULL 表示无默认值。 如果�生错误,这个函数会返回 NULL。

int PyContextVar_Get(PyObject *var, PyObject *default_value, PyObject **value)¶

获�上下文��的值。如果在查找过程中�生错误,返回' ' -1 ' ',如果没有�生错误,无论是�找到值,都返回' ' 0 ' ',

如果找到上下文��,value 将是指�它的指针。 如果上下文�� 没有 找到,value 将指�:

  • default_value,如果é�ž NULL;

  • var 的默认值,如果ä¸�是 NULLï¼›

  • NULL

除了返回 NULL,这个函数会返回一个新的引用。

PyObject *PyContextVar_Set(PyObject *var, PyObject *value)¶
返回值:新的引用。

在当�上下文中将 var 设为 value。 返回针对此修改的新凭�对象,或者如果�生错误则返回 NULL。

int PyContextVar_Reset(PyObject *var, PyObject *token)¶

将上下文�� var 的状��置为它在返回 token 的 PyContextVar_Set() 被调用之�的状�。 此函数�功时返回 0,出错时返回 -1。