# Ітератор об’єктів

Python provides two general-purpose iterator objects. The first, a sequence iterator, works with an arbitrary sequence supporting the `__getitem__()` method. The second works with a callable object and a sentinel value, calling the callable for each item in the sequence, and ending the iteration when the sentinel value is returned.

PyTypeObject PySeqIter_Type
  Part of the Stable ABI.

  Об’єкт типу для об’єктів-ітераторів, які повертає `PySeqIter_New()`, і форма з одним аргументом вбудованої функції `iter()` для вбудованих типів послідовностей.

int PySeqIter_Check(PyObject *op)

  Повертає true, якщо op має тип `PySeqIter_Type`. Ця функція завжди успішна.

PyObject *PySeqIter_New(PyObject *seq)
  Return value: New reference. Part of the Stable ABI.

  Повертає ітератор, який працює з об’єктом загальної послідовності seq. Ітерація завершується, коли послідовність викликає `IndexError` для операції підписання.

PyTypeObject PyCallIter_Type
  Part of the Stable ABI.

  Об’єкт типу для об’єктів-ітераторів, що повертаються `PyCallIter_New()` і формою з двома аргументами вбудованої функції `iter()`.

int PyCallIter_Check(PyObject *op)

  Повертає true, якщо тип op `PyCallIter_Type`. Ця функція завжди успішна.

PyObject *PyCallIter_New(PyObject *callable, PyObject *sentinel)
  Return value: New reference. Part of the Stable ABI.

  Повернути новий ітератор. Перший параметр, callable, може бути будь-яким викликаним об’єктом Python, який можна викликати без параметрів; кожен виклик має повертати наступний елемент ітерації. Коли callable повертає значення, рівне sentinel, ітерація буде припинена.