anext() 异步获取下一个元素
最后更新:2026-09-22
anext() 异步获取下一个元素
anext(async_iterator[, default]) 返回异步迭代器的下一个元素。
| 分类 | 内置函数 |
|---|---|
| 类型 | 内置函数 |
| Python 版本 | 3.10+ |
📝 语法
anext(async_iterator[, default])
⚙️ 参数
| async_iterator 必选 | 异步迭代器对象。 |
|---|---|
| default 可选 | 异步迭代器耗尽且未提供后备值时返回的值。 |
返回值:异步迭代器中的下一个元素;耗尽且提供 default 时返回 default。
💥 异常
StopAsyncIteration— 异步迭代器耗尽且未提供 default 时抛出。
▶ 示例
编辑下方代码,点击运行,在输出面板查看结果:
运行结果:
1
2
end
🏷️ 相关内置函数
💡 相关案例
更多实战案例即将上线,敬请期待。
❓ 常见问题
Qanext(it) 和 next(it) 有什么不同?
Anext() 同步、直接返回下一个元素;anext() 作用于异步迭代器,其 __anext__() 返回协程,必须 await 才能拿到值:await anext(it)。配对关系:iter↔next、aiter↔anext。
Q异步迭代器耗尽时会怎样?
A未提供 default 时抛 StopAsyncIteration;提供了第二个参数 default(如 anext(it, 0))时,耗尽后返回 default 而不报错。
Qanext 必须在 async 环境里用吗?
A基本是。__anext__() 返回协程,通常要在 async 函数里 await;async for 遍历时内部自动调用。函数本身随处可调,但要拿到值必须 await 结果。
Q不想用 default 时怎么安全取元素?
A用 try/except StopAsyncIteration 包住 await anext(it);或者更简单,遍历直接用 async for,它内部会正确处理耗尽结束。