- 3.4.3. 异步迭代器
3.4.3. 异步迭代器
异步迭代器 可以在其 anext
方法中调用异步代码。
异步迭代器可在 async for
语句中使用。
object.
aiter
(self)必须返回一个 异步迭代器 对象。
object.
anext
(self)- 必须返回一个 可迭代对象 输出迭代器的下一结果值。 当迭代结束时应该引发
StopAsyncIteration
错误。
异步可迭代对象的一个示例:
- class Reader:
- async def readline(self):
- ...
- def __aiter__(self):
- return self
- async def __anext__(self):
- val = await self.readline()
- if val == b'':
- raise StopAsyncIteration
- return val
3.5 新版功能.
在 3.7 版更改: 在 Python 3.7 之前,aiter
可以返回一个 可迭代对象 并解析为 异步迭代器。
从 Python 3.7 开始,aiter
必须 返回一个异步迭代器对象。 返回任何其他对象都将导致 TypeError
错误。