Объекты контекстных переменных¶
Добавлено в версии 3.7.
Изменено в версии 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 для получения более подробной информации.
В этом разделе подробно описывается общедоступный C API для модуля contextvars.
-
type PyContext¶
Структура языка Си, используемая для представления объекта
contextvars.Context.
-
type PyContextVar¶
Структура языка Си, используемая для представления объекта
contextvars.ContextVar.
-
type PyContextToken¶
Структура языка Си, используемая для представления объекта
contextvars.Token.
-
PyTypeObject PyContext_Type¶
Объект type, представляющий тип context.
-
PyTypeObject PyContextVar_Type¶
Объект type, представляющий тип контекстной переменной.
-
PyTypeObject PyContextToken_Type¶
Объект type, представляющий тип контекстной переменной token.
Макросы для проверки типа:
-
int PyContext_CheckExact(PyObject *o)¶
Возвращает значение true, если значение o имеет тип
PyContext_Type. Значение o не должно бытьNULL. Эта функция всегда выполняется успешно.
-
int PyContextVar_CheckExact(PyObject *o)¶
Возвращает значение true, если значение o имеет тип
PyContextVar_Type. Значение o не должно бытьNULL. Эта функция всегда выполняется успешно.
-
int PyContextToken_CheckExact(PyObject *o)¶
Возвращает значение true, если значение o имеет тип
PyContextToken_Type. Значение o не должно бытьNULL. Эта функция всегда выполняется успешно.
Функции управления контекстными объектами:
-
PyObject *PyContext_New(void)¶
- Возвращаемое значение: Новая ссылка.
Создайте новый пустой контекстный объект. Возвращает
NULL, если произошла ошибка.
-
PyObject *PyContext_Copy(PyObject *ctx)¶
- Возвращаемое значение: Новая ссылка.
Создайте неполную копию переданного объекта ctx context. Возвращает
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 будет указывать на:
значение по умолчанию, если не
NULL;значение по умолчанию var, если не
NULL;NULL
За исключением
NULL, функция возвращает новую ссылку.