Python aiter() 내장 함수

Python 3 설명서에서 발췌

비동기 반복 가능한 객체에 대한 비동기 반복자 (asynchronous iterator) 를 반환합니다. 이는 x.__aiter__() 를 호출하는 것과 동일합니다. aiter() 는 iter() 의 비동기 버전입니다.

소개

aiter() 함수는 비동기 반복 가능한 객체로부터 비동기 반복자를 반환합니다. 이는 iter() 함수의 비동기 버전입니다.

일반적으로 async for 루프를 사용할 때 aiter()를 암시적으로 사용하지만, 종종 anext()와 함께 수동으로 반복자를 다루어야 할 때 직접 호출할 수 있습니다.

예시

다음은 비동기 반복 가능한 객체의 예시입니다. async for 루프는 AsyncCounter 객체에서 aiter()를 자동으로 호출하여 반복자를 얻습니다.

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

관련 링크