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)
Return value: New reference.

Create and return a new cell object containing the value ob. The parameter may be 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.

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.