Документация Python неофициальный перевод

iterator.md

70 строк · 4.2 КБ · обычная страница · сырой текст · скачать

1> **Источник:** https://python-all.ru/3.0/c-api/iterator.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# Объекты-итераторы89Python предоставляет два объекта-итератора общего назначения. Первый, итератор последовательности, работает с произвольной последовательностью, поддерживающей метод [`__getitem__()`](https://python-all.ru/3.0/reference/datamodel.html#object.__getitem__). Второй работает с вызываемым объектом и сторожевым значением, вызывая вызываемый объект для каждого элемента последовательности и завершая итерацию, когда возвращается сторожевое значение.1011**\[PySeqIter\_Type\][PyTypeObject](https://python-all.ru/3.0/c-api/type.html#PyTypeObject) `PySeqIter_Type`**1213Объект типа для объектов-итераторов, возвращаемых функцией1415[`PySeqIter_New`](https://python-all.ru/3.0/c-api/iterator.html#PySeqIter_New)1617и одноаргументной формой встроенной функции1819[`iter()`](https://python-all.ru/3.0/library/functions.html#iter)2021для встроенных типов последовательностей.2223**\[PySeqIter\_Check\]int `PySeqIter_Check`(op)**2425Возвращает истину, если тип2627*op*2829равен3031[`PySeqIter_Type`](https://python-all.ru/3.0/c-api/iterator.html#PySeqIter_Type)3233.3435**\[PySeqIter\_New\][PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject)\* `PySeqIter_New`([PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*seq*)**3637*Возвращаемое значение: новая ссылка.*3839Возвращает итератор, работающий с произвольным объектом последовательности *seq*. Итерация завершается, когда последовательность возбуждает исключение [`IndexError`](https://python-all.ru/3.0/library/exceptions.html#exceptions.IndexError) при операции индексирования.4041**\[PyCallIter\_Type\][PyTypeObject](https://python-all.ru/3.0/c-api/type.html#PyTypeObject) `PyCallIter_Type`**4243Объект типа для объектов-итераторов, возвращаемых функцией4445[`PyCallIter_New`](https://python-all.ru/3.0/c-api/iterator.html#PyCallIter_New)4647и dвухаргументной формой встроенной функции4849[`iter()`](https://python-all.ru/3.0/library/functions.html#iter)5051.5253**\[PyCallIter\_Check\]int `PyCallIter_Check`(op)**5455Возвращает истину, если тип5657*op*5859равен6061[`PyCallIter_Type`](https://python-all.ru/3.0/c-api/iterator.html#PyCallIter_Type)6263.6465**\[PyCallIter\_New\][PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject)\* `PyCallIter_New`([PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*callable*, [PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*sentinel*)**6667*Возвращаемое значение: новая ссылка.*6869Возвращает новый итератор. Первый параметр, *callable*, может быть любым вызываемым объектом Python, который можно вызвать без параметров; каждый его вызов должен возвращать следующий элемент итерации. Когда *callable* возвращает значение, равное *sentinel*, итерация завершается.70