上下文变量对象 – 具体对象层(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.
本节详细介绍了contextvarsmodule.
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错误.
评论被关闭。