La fonction intégrée Python aiter()

Tiré de la documentation Python 3

Retourne un itérateur asynchrone pour un objet itérable asynchrone. Équivalent à appeler x.__aiter__(). aiter() est l'équivalent asynchrone de iter()

Introduction

La fonction aiter() retourne un itérateur asynchrone à partir d’un objet itérable asynchrone. C’est l’équivalent asynchrone de la fonction iter().

Vous utiliserez généralement aiter() implicitement lorsque vous utilisez une boucle async for, mais vous pouvez l’appeler directement si vous avez besoin de travailler manuellement avec l’itérateur, souvent en conjonction avec anext().

Exemple

Voici un exemple d’itérable asynchrone. La boucle async for appelle automatiquement aiter() sur l’objet AsyncCounter pour obtenir un itérateur.

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)

# Pour exécuter ceci dans un environnement réel :
# asyncio.run(main())
0
1
2

Liens pertinents