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

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

type PyCellObject

Структура C, используемая для объектов cell.

PyTypeObject PyCell_Type

Тип object, соответствующий объектам cell.

int PyCell_Check(PyObject *ob)

Возвращает значение true, если ob является объектом cell; ob не должно быть NULL. Эта функция всегда выполняется успешно.

PyObject *PyCell_New(PyObject *ob)
Возвращаемое значение: Новая ссылка.

Создайте и верните новый объект cell, содержащий значение ob. Параметр может быть NULL.

PyObject *PyCell_Get(PyObject *cell)
Возвращаемое значение: Новая ссылка.

Возвращает содержимое ячейки cell.

PyObject *PyCell_GET(PyObject *cell)
Возвращаемое значение: Заимствованная ссылка.

Возвращает содержимое ячейки cell, но без проверки того, что cell не является``NULL`` и объектом cell.

int PyCell_Set(PyObject *cell, PyObject *value)

Установите для содержимого объекта ячейки cell значение value. Это освобождает ссылку на любое текущее содержимое ячейки. значение может быть NULL. ячейка должна быть не``NULL``; если это не объект cell, будет возвращено значение -1. В случае успеха будет возвращено значение 0.

void PyCell_SET(PyObject *cell, PyObject *value)

Присваивает объекту ячейки cell значение value. Количество ссылок не настраивается и проверки безопасности не выполняются; ячейка должна быть не``NULL`` и должна быть объектом ячейки.

Вернуться на верх