Spec-Zone.ru › Python 3.13

Объекты ячеек

Объекты «ячеек» используются для реализации переменных, на которые ссылаются из нескольких областей видимости. Для каждой такой переменной создаётся объект ячейки, в котором хранится значение; локальные переменные каждого кадра стека, ссылающиеся на это значение, содержат ссылку на ячейки из внешних областей видимости, в которых также используется эта переменная. При обращении к значению используется значение, хранящееся в ячейке, а не сам объект ячейки. Для разыменования объекта ячейки требуется поддержка со стороны сгенерированного байт-кода; при обращении к ним разыменование не выполняется автоматически. Объекты ячеек вряд ли пригодятся где-либо ещё.

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API