Python eingebaute Funktion aiter()

Aus der Python 3 Dokumentation

Gibt einen asynchronen Iterator für ein asynchrones iterierbares Objekt zurück. Entspricht dem Aufruf von x.__aiter__(). aiter() ist ein asynchrones Äquivalent zu iter()

Einführung

Die Funktion aiter() gibt einen asynchronen Iterator aus einem asynchron iterierbaren Objekt zurück. Sie ist das asynchrone Äquivalent der Funktion iter().

Normalerweise verwenden Sie aiter() implizit, wenn Sie eine async for-Schleife verwenden, aber Sie können sie direkt aufrufen, wenn Sie manuell mit dem Iterator arbeiten müssen, oft in Verbindung mit anext().

Beispiel

Hier ist ein Beispiel für ein asynchron iterierbares Objekt. Die async for-Schleife ruft automatisch aiter() für das AsyncCounter-Objekt auf, um einen Iterator zu erhalten.

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)

# Um dies in einer realen Umgebung auszuführen:
# asyncio.run(main())
0
1
2