约 1131 字
约 6 分钟
说明:获取异步迭代器的下一数据项(调用对象的 __anext__
方法)。参考 next 函数。
async def anext(async_iterator):
'''
获取异步迭代器的下一数据项,
没有下一项时产生 StopAsyncIteration 异常
:param async_iterator: 一个异步迭代器
:return: 迭代器的下一项
'''
async def anext(async_iterator, default):
'''
获取异步迭代器的下一数据项,没有下一项时返回 default
:param async_iterator: 一个异步迭代器
:param default: 默认值
:return: 迭代器的下一项
'''
示例:
import asyncio
# 异步迭代器
class AsyncIterator:
def __init__(self, stop):
self.__stop = stop
self.__current = 0
async def __anext__(self):
if self.__current < self.__stop:
await asyncio.sleep(0.1) # 模拟异步操作
self.__current += 1
return self.__current - 1
else:
raise StopAsyncIteration
# 异步函数
async def main():
async_iterator = AsyncIterator(10)
while (value := await anext(async_iterator, None)) is not None:
print(value)
# 启动
asyncio.run(main())
创建于 2025/5/9 23:27:43
更新于 2025/5/11 16:48:17