7.5.6 イテレータオブジェクト (iterator object)

Python では二種類のイテレータオブジェクトを提供しています。 一つ目はシーケンスイテレータで、__getitem__() メソッドを サポートする任意のシーケンスを取り扱います。二つ目は呼び出し可能 オブジェクトとセンチネル値 (sentinel value) を扱い、 シーケンス内の要素ごとに呼び出し可能オブジェクトを呼び出して、 センチネル値が返されたときに反復処理を終了します。

PyTypeObject PySeqIter_Type
PySeqIter_New() や、組み込みシーケンス型に対して 1 引数形式の組み込み関数iter() を呼び出したときに 返される、イテレータオブジェクトの型オブジェクトです。 バージョン 2.2 で 新たに追加 された仕様です。

int PySeqIter_Check(op)
PySeqIter_Type の型が op のときに真を返します。 バージョン 2.2 で 新たに追加 された仕様です。

PyObject* PySeqIter_New(PyObject *seq)
戻り値: 新たな参照.
一般的なシーケンスオブジェクト seq を扱うイテレータを返します。 反復処理は、シーケンスが添字指定操作の際に IndexError を 返したときに終了します。 バージョン 2.2 で 新たに追加 された仕様です。

PyTypeObject PyCallIter_Type
PyCallIter_New() や、組み込み関数 iter() の 2 引数形式が返すイテレータオブジェクトの型オブジェクトです。 iter() built-in function. バージョン 2.2 で 新たに追加 された仕様です。

int PyCallIter_Check(op)
PyCallIter_Type の型が op のときに真を返します。 バージョン 2.2 で 新たに追加 された仕様です。

PyObject* PyCallIter_New(PyObject *callable, PyObject *sentinel)
戻り値: 新たな参照.
新たなイテレータを返します。最初のパラメタ callable は 引数なしで呼び出せる Python の呼び出し可能オブジェクトなら なんでもかまいません; callableは、呼び出されるたびに 次の反復処理対象オブジェクトを返さなければなりません。 生成されたイテレータは、 callablesentinel に等しい 値を返すと反復処理を終了します。 バージョン 2.2 で 新たに追加 された仕様です。

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