Python aiter() 内置函数

来自 Python 3 文档

返回一个异步可迭代对象的异步迭代器。等同于调用 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)

# 在真实环境中运行:
# asyncio.run(main())
0
1
2

相关链接