7.5.10 セルオブジェクト (cell object)
``セル (cell)'' オブジェクトは、複数のスコープから参照される
変数群を実装するために使われます。セルは各変数について作成され、
各々の値を記憶します; この値を参照する各スタックフレームにおける
ローカル変数には、そのスタックフレームの外側で同じ値を参照している
セルに対する参照が入ります。セルで表現された値にアクセスすると、
セルオブジェクト自体の代わりにセル内の値が使われます。この
セルオブジェクトを使った間接参照 (dereference) は、インタプリタに
よって生成されたバイトコード内でサポートされている必要があります;
セルオブジェクトにアクセスした際に、自動的に間接参照は起こり
ません。上記以外の状況では、セルオブジェクトは役に立たないはずです。
- PyCellObject
-
セルオブジェクトに使われる C 構造体です。
- PyTypeObject PyCell_Type
-
セルオブジェクトに対応する型オブジェクトです。
-
ob がセルオブジェクトの場合に真を返します;
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 は NULL でもかまいません。cell は 非NULL
でなければなりません; もしcell がセルオブジェクトでない
場合、
-1
を返します。成功すると 0
を返します。
void PyCell_SET( | PyObject *cell, PyObject *value) |
-
セルオブジェクト cell の値を value に設定します。
参照カウントに対する変更はなく、安全のためのチェックは何も
行いません; cell は非NULL でなければならず、かつ
セルオブジェクトでなければなりません。
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。