Объекты переменных контекста
Добавлено в версии 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 -
Структура C, используемая для представления объекта
contextvars.Context.
-
type PyContextVar -
Структура C, используемая для представления объекта
contextvars.ContextVar.
-
type PyContextToken -
Структура C, используемая для представления объекта
contextvars.Token.
-
PyTypeObject PyContext_Type -
Объект типа, представляющий тип контекста.
-
PyTypeObject PyContextVar_Type -
Объект типа, представляющий тип переменной контекста.
-
PyTypeObject PyContextToken_Type -
Объект типа, представляющий тип токена переменной контекста.
Макросы проверки типа:
-
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. Возвращает
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 будет указывать на:
-
default_value, если это не
NULL; - значение по умолчанию для var, если это не
NULL; NULL
За исключением
NULL, функция возвращает новую ссылку. -
default_value, если это не
-
PyObject *PyContextVar_Set(PyObject *var, PyObject *value) -
Возвращаемое значение: новая ссылка.
Устанавливает значение var равным value в текущем контексте. Возвращает новый объект токена для этого изменения или
NULL, если произошла ошибка.
-
int PyContextVar_Reset(PyObject *var, PyObject *token) -
Восстанавливает состояние переменной контекста var, которое было до вызова
PyContextVar_Set(), вернувшего токен token. В случае успеха эта функция возвращает0, а в случае ошибки —-1.
© 2001–2024 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.12/c-api/contextvars.html