Объекты итератора

Python предоставляет два объекта итератора общего назначения. Первый, итератор последовательности, работает с произвольной последовательностью, поддерживающей метод __getitem__(). Второй работает с объектом callable и значением sentinel, вызывая callable для каждого элемента в последовательности и завершая итерацию, когда возвращается значение sentinel.

PyTypeObject PySeqIter_Type
Часть Стабильный ABI.

Объект типа для объектов итераторов, возвращаемых PySeqIter_New(), и одноаргументная форма встроенной функции iter() для встроенных типов последовательностей.

int PySeqIter_Check(PyObject *op)

Возвращает true, если тип op равен PySeqIter_Type. Эта функция всегда работает успешно.

PyObject *PySeqIter_New(PyObject *seq)
Возвращаемое значение: Новая ссылка. Часть Стабильный ABI.

Возвращает итератор, работающий с общим объектом последовательности seq. Итерация заканчивается, когда последовательность поднимает IndexError для операции подписки.

PyTypeObject PyCallIter_Type
Часть Стабильный ABI.

Объект типа для объектов-итераторов, возвращаемых PyCallIter_New() и двухаргументной формой встроенной функции iter().

int PyCallIter_Check(PyObject *op)

Возвращает true, если тип op равен PyCallIter_Type. Эта функция всегда работает успешно.

PyObject *PyCallIter_New(PyObject *callable, PyObject *sentinel)
Возвращаемое значение: Новая ссылка. Часть Стабильный ABI.

Возвращает новый итератор. Первый параметр, callable, может быть любым вызываемым объектом Python, который можно вызвать без параметров; каждый вызов этого объекта должен возвращать следующий элемент в итерации. Когда callable вернет значение, равное sentinel, итерация будет завершена.