迭代器对象

Python 提供了两个通用的迭代器对象。第一个是序列迭代器,它使用支持 __getitem__() 方法的任意序列。第二个使用可调用对象和哨兵值,为序列中的每个项目调用可调用对象,并在返回哨兵值时结束迭代。

PyTypeObject PySeqIter_Type
稳定 ABI 的一部分。

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

int PySeqIter_Check(PyObject *op)

如果 op 的类型是 PySeqIter_Type,则返回 true。此函数始终成功。

PyObject *PySeqIter_New(PyObject *seq)
返回值:新引用。稳定 ABI 的一部分。

返回一个使用通用序列对象 seq 的迭代器。当序列为下标操作引发 IndexError 时,迭代结束。

PyTypeObject PyCallIter_Type
稳定 ABI 的一部分。

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

int PyCallIter_Check(PyObject *op)

如果 op 的类型是 PyCallIter_Type,则返回 true。此函数始终成功。

PyObject *PyCallIter_New(PyObject *callable, PyObject *sentinel)
返回值:新引用。稳定 ABI 的一部分。

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