7.5.11 セルオブジェクト (cell object)

``セル (cell)'' オブジェクトは、複数のスコープから参照される 変数群を実装するために使われます。セルは各変数について作成され、 各々の値を記憶します; この値を参照する各スタックフレームにおける ローカル変数には、そのスタックフレームの外側で同じ値を参照している セルに対する参照が入ります。セルで表現された値にアクセスすると、 セルオブジェクト自体の代わりにセル内の値が使われます。この セルオブジェクトを使った間接参照 (dereference) は、インタプリタに よって生成されたバイトコード内でサポートされている必要があります; セルオブジェクトにアクセスした際に、自動的に間接参照は起こり ません。上記以外の状況では、セルオブジェクトは役に立たないはずです。

PyCellObject
セルオブジェクトに使われる C 構造体です。

PyTypeObject PyCell_Type
セルオブジェクトに対応する型オブジェクトです。

int PyCell_Check(ob)
ob がセルオブジェクトの場合に真を返します; obNULL であってはなりません。

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 に設定します。 この関数は現在のセルの全ての内容に対する参照を解放します。 valueNULL でもかまいません。cell は 非NULL でなければなりません; もしcell がセルオブジェクトでない 場合、 -1 を返します。成功すると 0 を返します。

void PyCell_SET(PyObject *cell, PyObject *value)
セルオブジェクト cell の値を value に設定します。 参照カウントに対する変更はなく、安全のためのチェックは何も 行いません; cell は非NULL でなければならず、かつ セルオブジェクトでなければなりません。

ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。