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