Context Variables Objects
¶
3.7 版添加。
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
了解更多细节。
This section details the public C API for the
contextvars
模块。
-
type
PyContext
¶
-
The C structure used to represent a
contextvars.Context
对象。
-
type
PyContextVar
¶
-
The C structure used to represent a
contextvars.ContextVar
对象。
-
type
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
上下文变量
类型。
-
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
*
名称
,
PyObject
*
def
)
¶
-
返回值:新引用。
创建新的
ContextVar
对象。
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
*
*
值
)
¶
-
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:
Except for
NULL
, the function returns a new reference.
-
PyObject
*
PyContextVar_Set
(
PyObject
*
var
,
PyObject
*
值
)
¶
-
返回值:新引用。
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
当出错时。