Cell объекты

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

PyCellObject

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

PyTypeObject PyCell_Type

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

int PyCell_Check(ob)

Возвращает истину, если ob является объектом Cell; ob не должен быть NULL.

PyObject* PyCell_New(PyObject *ob)
Return value: New reference.

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

PyObject* PyCell_Get(PyObject *cell)
Return value: New reference.

Возвращает содержимое Cell cell.

PyObject* PyCell_GET(PyObject *cell)
Return value: Borrowed reference.

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

int PyCell_Set(PyObject *cell, PyObject *value)

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

void PyCell_SET(PyObject *cell, PyObject *value)

Устанавливает значение объекта Cell cell на value. Счётчик ссылок не корректируется, и не проводится никаких проверок на безопасность; cell не должен быть NULL и должен быть объектом Cell.