Объекты ячеек
Объекты «ячеек» используются для реализации переменных, на которые ссылаются из нескольких областей видимости. Для каждой такой переменной создаётся объект ячейки, в котором хранится значение; локальные переменные каждого кадра стека, ссылающиеся на это значение, содержат ссылку на ячейки из внешних областей видимости, в которых также используется эта переменная. При обращении к значению используется значение, хранящееся в ячейке, а не сам объект ячейки. Для разыменования объекта ячейки требуется поддержка со стороны сгенерированного байт-кода; при обращении к ним разыменование не выполняется автоматически. Объекты ячеек вряд ли пригодятся где-либо ещё.
-
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–2025 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.13/c-api/cell.html