上下文变量对象 – 具体对象层(Python教程)(参考资料)
上下文变量对象
注意
在版本3.7.1中更改:
在Python 3.7.1中,所有上下文变量C的签名都是更改使用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
module.
PyContext
- C结构用来表示
contextvars.Context
宾语。
PyContextVar
- C结构用来表示
contextvars.ContextVar
宾语。
PyContextToken
- C结构用来表示
contextvars.Token
宾语。
- PyTypeObject
PyContextVar_Type
- 表示context variable type.
- PyTypeObject的类型对象
PyContextToken_Type
- 表示context variable token类型的类型对象.
类型检查宏:
- int
PyContextVar_CheckExact
( PyObject *o) - 如果o是类型
PyContextVar_Type
. o一定不能NULL。这个功能总是成功的.
- int
PyContextToken_CheckExact
( PyObject *o) - 如果o是类型
PyContextToken_Type
.o一定不能NULL。这个功能总是成功的
上下文对象管理函数:
- //
PyContext_Enter
( PyObject *ctx) - 设置ctx作为当前线程的当前上下文。在成功时回复
0
,在错误时回复-1
- //
PyContext_Exit
( PyObject *ctx) - 停用ctx上下文并将先前的上下文恢复为当前线程的当前上下文。成功时返回
0
,错误时返回-1
- //
PyContext_ClearFreeList
() - 清除上下文变量空闲列表。返回不同项目的总数。这个函数总是成功的.
上下文变量函数:
- PyObject *
PyContextVar_New
( const char *name,PyObject *def) - Return value: New reference.
创建一个新的
ContextVar
对象。name参数用于内省和调试目的。def参数可以选择指定上下文变量的默认值。如果发生错误,该函数返回NULL
.
- int
PyContextVar_Get
( PyObject *var,PyObject *default_value,PyObject **value) - 获取上下文变量的值。如果在查找期间发生错误则返回
-1
,如果没有发生错误则返回0
,无论是否找到值.如果找到了上下文变量,value将是指向它的指针。如果上下文变量是not,value将指向:
- default_value,如果不是
NULL
; - 默认值var,如果没有
NULL
; NULL
如果找到该值,该函数将创建一个新的引用.
- default_value,如果不是
- PyObject *
PyContextVar_Set
( PyObject *var,PyObject *value) - Return value: New reference.
在当前上下文中将var的值设置为value。返回指向
PyObject
对象的指针,如果发生错误则返回NULL
.
- int
PyContextVar_Reset
( PyObject *var,PyObject *token) - 将var上下文变量的状态重置为
PyContextVar_Set()
之前的状态,返回token被调用。该函数返回0
成功和-1
错误.
评论被关闭。