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

Об’єкти «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, which can be `NULL`. If cell is not a cell object, returns `NULL` with an exception set.

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`.

  On success, return `0`. If cell is not a cell object, set an exception and return `-1`.

void PyCell_SET(PyObject *cell, PyObject *value)

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