Context Variables Objects

注意

Changed in version 3.7.1:

In Python 3.7.1 the signatures of all context variables C APIs were changed 要使用 PyObject pointers instead of PyContext , PyContextVar ,和 PyContextToken ,如:

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

bpo-34762 了解更多细节。

3.7 版新增。

This section details the public C API for the contextvars 模块。

PyContext

The C structure used to represent a contextvars.Context 对象。

PyContextVar

The C structure used to represent a contextvars.ContextVar 对象。

PyContextToken

The C structure used to represent a contextvars.Token 对象。

PyTypeObject PyContext_Type

The type object representing the context 类型。

PyTypeObject PyContextVar_Type

The type object representing the context variable 类型。

PyTypeObject PyContextToken_Type

The type object representing the context variable token 类型。

Type-check macros:

int PyContext_CheckExact ( PyObject *o )

返回 True 若 o 是类型 PyContext_Type . o 必须不是 NULL . This function always succeeds.

int PyContextVar_CheckExact ( PyObject *o )

返回 True 若 o 是类型 PyContextVar_Type . o 必须不是 NULL . This function always succeeds.

int PyContextToken_CheckExact ( PyObject *o )

返回 True 若 o 是类型 PyContextToken_Type . o 必须不是 NULL . This function always succeeds.

Context object management functions:

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

Create a new empty context object. Returns NULL if an error has occurred.

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

Create a shallow copy of the passed ctx context object. Returns NULL if an error has occurred.

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

Create a shallow copy of the current thread context. Returns NULL if an error has occurred.

int PyContext_Enter ( PyObject *ctx )

Set ctx as the current context for the current thread. Returns 0 on success, and -1 当出错时。

int PyContext_Exit ( PyObject *ctx )

Deactivate the ctx context and restore the previous context as the current context for the current thread. Returns 0 on success, and -1 当出错时。

Context variable functions:

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

创建新的 ContextVar object. The name parameter is used for introspection and debug purposes. The def parameter specifies a default value for the context variable, or NULL for no default. If an error has occurred, this function returns NULL .

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

Get the value of a context variable. Returns -1 if an error has occurred during lookup, and 0 if no error occurred, whether or not a value was found.

If the context variable was found, value will be a pointer to it. If the context variable was not found, value will point to:

  • default_value ,若不 NULL ;

  • the default value of var ,若不 NULL ;

  • NULL

Except for NULL , the function returns a new reference.

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

Set the value of var to value in the current context. Returns a new token object for this change, or NULL if an error has occurred.

int PyContextVar_Reset ( PyObject *var , PyObject *token )

Reset the state of the var context variable to that it was in before PyContextVar_Set() that returned the token was called. This function returns 0 on success and -1 当出错时。

上一话题

协程对象

下一话题

日期时间对象

本页