Встроенная функция Python aiter()
Возвращает асинхронный итератор для асинхронного итерируемого объекта. Эквивалентно вызову 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