Cell 对象

“Cell”对象用于实现由多个作用域引用的变量。 对于每个这样的变量,一个“Cell”对象为了存储该值而被创建;引用该值的每个堆栈框架的局部变量包含同样使用该变量的对外部作用域的“Cell”引用。 访问该值时,将使用“Cell”中包含的值而不是单元格对象本身。 这种对“Cell”对象的非关联化的引用需要支持生成的字节码;访问时不会自动非关联化这些内容。 “Cell”对象在其他地方可能不太有用。

PyCellObject

用于Cell对象的C结构体。

PyTypeObject PyCell_Type

与 Cell 对象对应的类型对​​象。

int PyCell_Check(ob)

如果 ob 是一个 Cell 对象,则返回true; ob 不得为 NULL

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

生成并返回一个包含 ob 的值的 Cell 对象。形参必须为 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.