# Cell Objects

Obiekty „Cell” są używane do implementacji zmiennych, do których odwołuje się wiele zakresów. Dla każdej takiej zmiennej tworzony jest obiekt komórki do przechowywania wartości; zmienne lokalne każdej ramki stosu, która odwołuje się do wartości, zawierają odniesienie do komórek z zewnętrznych zakresów, które również używają tej zmiennej. Gdy wartość jest dostępna, wartość zawarta w komórce jest używana zamiast samego obiektu komórki. Odwoływanie się do obiektu komórki wymaga wsparcia ze strony wygenerowanego kodu bajtowego; nie są one automatycznie odwoływane, gdy uzyskuje się do nich dostęp. Obiekty komórek prawdopodobnie nie będą przydatne w innych miejscach.

type PyCellObject

  The C structure used for cell objects.

PyTypeObject PyCell_Type

  The type object corresponding to cell objects.

int PyCell_Check(PyObject *ob)

  Return true if ob is a cell object; ob must not be `NULL`. This function always succeeds.

PyObject *PyCell_New(PyObject *ob)
  Wartość zwracana: nowa referencja.

  Create and return a new cell object containing the value ob. The parameter may be `NULL`.

PyObject *PyCell_Get(PyObject *cell)
  Wartość zwracana: nowa referencja.

  Return the contents of the cell cell.

PyObject *PyCell_GET(PyObject *cell)
  Wartość zwracana: pożyczona referencja.

  Return the contents of the cell cell, but without checking that cell is non-`NULL` and a cell object.

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)

  Sets the value of the cell object cell to value. No reference counts are adjusted, and no checks are made for safety; cell must be non-`NULL` and must be a cell object.