Spec-Zone.ru › Python 3.14

Протокол итератора

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

int PyIter_Check(PyObject *o)
Часть Стабильного ABI начиная с версии 3.8.

Возвращает ненулевое значение, если объект o можно безопасно передать в PyIter_NextItem(), и 0 в противном случае. Эта функция всегда завершается успешно.

int PyAIter_Check(PyObject *o)
Часть Стабильного ABI начиная с версии 3.10.

Возвращает ненулевое значение, если объект o поддерживает протокол AsyncIterator, и 0 в противном случае. Эта функция всегда завершается успешно.

Добавлено в версии 3.10.

int PyIter_NextItem(PyObject *iter, PyObject **item)
Часть Стабильного ABI начиная с версии 3.14.

При успешном выполнении возвращает 1 и присваивает item сильную ссылку на следующее значение итератора iter. Если оставшихся значений нет, возвращает 0 и присваивает item значение NULL. При ошибке возвращает -1, присваивает item значение NULL и устанавливает исключение.

Добавлено в версии 3.14.

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

Это более старая версия PyIter_NextItem(), сохранённая для обратной совместимости. Предпочтительно использовать PyIter_NextItem().

Возвращает следующее значение итератора o. Согласно PyIter_Check(), объект должен быть итератором (проверку должен выполнить вызывающий код). Если оставшихся значений нет, возвращает NULL без установленного исключения. Если при получении элемента возникает ошибка, возвращает NULL и передаёт исключение.

type PySendResult

Значение перечисления, используемое для представления различных результатов PyIter_Send().

Добавлено в версии 3.10.

PySendResult PyIter_Send(PyObject *iter, PyObject *arg, PyObject **presult)
Часть Стабильного ABI начиная с версии 3.10.

Передаёт значение arg итератору iter. Возвращает:

  • PYGEN_RETURN, если итератор завершился. Возвращаемое значение передаётся через presult.
  • PYGEN_NEXT, если итератор выдал значение. Выданное значение передаётся через presult.
  • PYGEN_ERROR, если итератор вызвал исключение. Для presult устанавливается значение NULL.

Добавлено в версии 3.10.

© 2001 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.14/c-api/iter.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API