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

Об’єкти «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.

Повернути вміст комірки cell.

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

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

int PyCell_Set(PyObject *cell, PyObject *value)

Встановіть для вмісту об’єкта комірки cell значення value. Це звільняє посилання на будь-який поточний вміст комірки. значення може бути NULL. комірка не має бути NULL; якщо це не об’єкт комірки, буде повернено -1. У разі успіху буде повернено 0.

void PyCell_SET(PyObject *cell, PyObject *value)

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