Iterator Objects

Python提供了两个通用的迭代器对象。第一个序列迭代器与支持__getitem__()方法的任意序列一起工作。第二种方法使用可调用对象和标记值,调用序列中每个项的可调用项,并在返回标记值时结束迭代。

PyTypeObject PySeqIter_Type

对于内建序列类型,由PySeqIter_New()返回的迭代器对象的类型对象以及iter()内建函数的单参数形式。

int PySeqIter_Check(op)

如果op的类型为PySeqIter_Type,则返回true。

PyObject* PySeqIter_New(PyObject *seq)
返回值:新引用。

返回与一般序列对象seq一起使用的迭代器。当序列引发IndexError用于下标操作时,迭代结束。

PyTypeObject PyCallIter_Type

PyCallIter_New()iter()内建函数的双参数形式返回的迭代器对象的类型对象。

int PyCallIter_Check(op)

如果op的类型为PyCallIter_Type,则返回true。

PyObject* PyCallIter_New(PyObject *callable, PyObject *sentinel)
返回值:新引用。

返回一个新的迭代器。第一个参数callable可以是任何可调用的对象,可以使用无参数调用;每次调用它应该返回迭代中的下一个项目。可调用返回等于sentinel的值时,迭代将终止。