Об’єкти клітинки

Об’єкти «Cell» використовуються для реалізації змінних, на які посилаються кілька областей. Для кожної такої змінної створюється об’єкт комірки для зберігання значення; локальні змінні кожного фрейму стека, який посилається на значення, містять посилання на клітинки із зовнішніх областей, які також використовують цю змінну. Коли здійснюється доступ до значення, значення, що міститься в комірці, використовується замість самого об’єкта комірки. Це депосилання об’єкта комірки вимагає підтримки згенерованого байт-коду; вони не знімаються автоматично під час доступу. Об’єкти клітинок навряд чи знадобляться в інших місцях.

type PyCellObject

Структура C, яка використовується для об’єктів клітинки.

PyTypeObject PyCell_Type

Об’єкт типу, що відповідає об’єктам комірки.

int PyCell_Check(PyObject *ob)

Повертає true, якщо ob є об’єктом клітинки; ob не має бути NULL. Ця функція завжди успішна.

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

Створіть і поверніть новий об’єкт клітинки, що містить значення ob. Параметр може бути NULL.

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

Return the contents of the cell cell.

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

Повертає вміст комірки cell, але без перевірки того, що cell не є NULL і є об’єктом комірки.

int PyCell_Set(PyObject *cell, PyObject *value)

Set the contents of the cell object cell to value. This releases the reference to any current content of the cell. value may be NULL. cell must be non-NULL; if it is not a cell object, -1 will be returned. On success, 0 will be returned.

void PyCell_SET(PyObject *cell, PyObject *value)

Встановлює для об’єкта клітинки cell значення value. Підрахунок посилань не коригується, і перевірки безпеки не проводяться; cell не має бути NULL і має бути об’єктом клітинки.