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

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

type `PyCellObject`

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

PyTypeObject `PyCell_Type`

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

int `PyCell_Check`(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` і має бути об’єктом клітинки.