Встроенная функция Python aiter()

Из документации Python 3

Возвращает асинхронный итератор для асинхронного итерируемого объекта. Эквивалентно вызову x.__aiter__(). aiter() — это асинхронный эквивалент iter()

Введение

Функция aiter() возвращает асинхронный итератор из асинхронного итерируемого объекта. Это асинхронный эквивалент функции iter().

Обычно вы используете aiter() неявно при использовании цикла async for, но вы можете вызвать ее напрямую, если вам нужно работать с итератором вручную, часто в сочетании с anext().

Пример

Вот пример асинхронного итерируемого объекта. Цикл async for автоматически вызывает aiter() для объекта AsyncCounter, чтобы получить итератор.

import asyncio

class AsyncCounter:
    def __init__(self, stop):
        self.stop = stop
        self.current = 0

    def __aiter__(self):
        return self

    async def __anext__(self):
        if self.current < self.stop:
            await asyncio.sleep(0.1)
            value = self.current
            self.current += 1
            return value
        else:
            raise StopAsyncIteration

async def main():
    async for number in AsyncCounter(3):
        print(number)

# To run this in a real environment:
# asyncio.run(main())
0
1
2

Связанные ссылки