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