セルオブジェクト (cell object)
"セル (cell)" オブジェクトは、複数のスコープから参照される変数群を実装するために使われます。セルは各変数について作成され、各々の値を記憶します; この値を参照する各スタックフレームにおけるローカル変数には、そのスタックフレームの外側で同じ値を参照しているセルに対する参照が入ります。セルで表現された値にアクセスすると、セルオブジェクト自体の代わりにセル内の値が使われます。このセルオブジェクトを使った間接参照 (dereference) は、インタプリタによって生成されたバイトコード内でサポートされている必要があります; セルオブジェクトにアクセスした際に、自動的に間接参照は起こりません。上記以外の状況では、セルオブジェクトは役に立たないはずです。
-
type PyCellObject
セルオブジェクトに使われる C 構造体です。
-
PyTypeObject PyCell_Type
セルオブジェクトに対応する型オブジェクトです。
-
int PyCell_Check(PyObject *ob)
ob がセルオブジェクトの場合に真を返します; ob は NULL
であってはなりません。この関数は常に成功します。
-
PyObject *PyCell_New(PyObject *ob)
- 戻り値: 新しい参照。
値 ob の入った新たなセルオブジェクトを生成して返します。
引数を NULL
にしてもかまいません。
-
PyObject *PyCell_Get(PyObject *cell)
- 戻り値: 新しい参照。
Return the contents of the cell cell.
-
PyObject *PyCell_GET(PyObject *cell)
- 戻り値: 借用参照。
cell の内容を返しますが、cell が非 NULL
かつセルオブジェクトであるかどうかはチェックしません。
-
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)
セルオブジェクト cell の値を value に設定します。
参照カウントに対する変更はなく、安全のためのチェックは何も行いません。cell は非 NULL
でなければならず、かつセルオブジェクトでなければなりません。