Объекты ячеек
Объекты «ячейка» используются для реализации переменных, на которые ссылаются из нескольких областей видимости. Для каждой такой переменной создаётся объект-ячейка для хранения значения; локальные переменные каждого кадра стека, ссылающиеся на это значение, содержат ссылку на ячейки из внешних областей видимости, в которых также используется эта переменная. При обращении к значению вместо самого объекта-ячейки используется значение, содержащееся в ячейке. Для такого разыменования объекта-ячейки требуется поддержка со стороны сгенерированного байт-кода; при обращении к ним разыменование не выполняется автоматически. Вряд ли объекты-ячейки будут полезны в других случаях.
-
type PyCellObject -
Структура C, используемая для объектов-ячееек.
-
PyTypeObject PyCell_Type -
Объект типа, соответствующий объектам-ячейкам.
-
int PyCell_Check(PyObject *ob) -
Возвращает true, если ob является объектом-ячейкой; ob не должен быть
NULL. Эта функция всегда завершается успешно.
-
PyObject *PyCell_New(PyObject *ob) -
Возвращаемое значение: новая ссылка.
Создаёт и возвращает новый объект-ячейку, содержащий значение ob. Параметр может быть
NULL.
-
PyObject *PyCell_Get(PyObject *cell) -
Возвращаемое значение: новая ссылка.
Возвращает содержимое ячейки cell, которое может быть
NULL. Если cell не является объектом-ячейкой, возвращаетNULLи устанавливает исключение.
-
PyObject *PyCell_GET(PyObject *cell) -
Возвращаемое значение: заимствованная ссылка.
Возвращает содержимое ячейки cell, не проверяя, что cell не является
NULLи представляет собой объект-ячейку.
-
int PyCell_Set(PyObject *cell, PyObject *value) -
Устанавливает содержимое объекта-ячейки cell равным value. При этом освобождается ссылка на любое текущее содержимое ячейки. value может быть
NULL. cell не должен бытьNULL.В случае успеха возвращает
0. Если cell не является объектом-ячейкой, устанавливает исключение и возвращает-1.
-
void PyCell_SET(PyObject *cell, PyObject *value) -
Устанавливает значение объекта-ячейки cell равным value. Счётчики ссылок не корректируются и проверки безопасности не выполняются; cell не должен быть
NULLи должен быть объектом-ячейкой.
© 2001 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.14/c-api/cell.html