Cell 物件

"Cell" objects are used to implement variables referenced by multiple scopes. For each such variable, a cell object is created to store the value; the local variables of each stack frame that references the value contains a reference to the cells from outer scopes which also use that variable. When the value is accessed, the value contained in the cell is used instead of the cell object itself. This de-referencing of the cell object requires support from the generated byte-code; these are not automatically de-referenced when accessed. Cell objects are not likely to be useful elsewhere.

PyCellObject

C 結構的 cell 物件

PyTypeObject PyCell_Type

對應 cell 物件的物件型別。

int PyCell_Check(ob)

如果 ob 是一个 cell 对象则返回真值;ob 必须不为 NULL

PyObject* PyCell_New(PyObject *ob)
Return value: New reference.

创建并返回一个包含值 ob 的新 cell 对象。形参可以为 NULL

PyObject* PyCell_Get(PyObject *cell)
Return value: New reference.

回傳 cell 內容中的 cell

PyObject* PyCell_GET(PyObject *cell)
Return value: Borrowed reference.

返回 cell 对象 cell 的内容,但是不检测 cell 是否非 NULL 并且为一个 cell 对象。

int PyCell_Set(PyObject *cell, PyObject *value)

将 cell 对象 cell 的内容设为 value。 这将释放任何对 cell 对象当前内容的引用。 value 可以为 NULLcell 必须为非 NULL;如果它不是一个 cell 对象则将返回 -1。 如果设置成功则将返回 0

void PyCell_SET(PyObject *cell, PyObject *value)

将 cell 对象 cell 的值设为 value。 不会调整引用计数,并且不会进行检测以保证安全;cell 必须为非 NULL 并且为一个 cell 对象。