单元格对象

“单元格”对象用于实现由多个作用域引用的变量。对于每个这样的变量,都会创建一个单元格对象来存储其值;每个引用该值的堆栈帧的局部变量都包含对来自外部作用域的单元格的引用,这些外部作用域也使用该变量。当访问该值时,将使用单元格中包含的值,而不是单元格对象本身。这种对单元格对象的解引用需要生成字节码的支持;它们在访问时不会自动解引用。单元格对象在其他地方可能不太有用。

type PyCellObject

用于单元格对象的 C 结构。

PyTypeObject PyCell_Type

与单元格对象对应的类型对象。

int PyCell_Check(PyObject *ob)

如果 ob 是一个单元格对象,则返回 true;ob 必须不为 NULL。此函数始终成功。

PyObject *PyCell_New(PyObject *ob)
返回值:新引用。

创建并返回一个新的单元格对象,其中包含值 ob。参数可以为 NULL

PyObject *PyCell_Get(PyObject *cell)
返回值:新引用。

返回单元格 cell 的内容。

PyObject *PyCell_GET(PyObject *cell)
返回值:借用引用。

返回单元格 cell 的内容,但不检查 cell 是否为非 NULL 且为单元格对象。

int PyCell_Set(PyObject *cell, PyObject *value)

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

void PyCell_SET(PyObject *cell, PyObject *value)

将单元格对象 cell 的值设置为 value。不会调整引用计数,也不会进行安全检查;cell 必须是非 NULL 并且必须是单元格对象。