如何在Python 3.10中定义空异步生成器?是否有库函数可用?
空异步生成器的实现方案
现有实现的有效性与优化
你写出的代码在Python 3.10中是有效的——通过一个永远不会执行的yield语句,让Python将该函数识别为异步生成器类型。不过还有更简洁的等价写法:
from typing import AsyncGenerator async def _empty_async_generator() -> AsyncGenerator[str, None]: yield from ()
yield from ()会迭代空的可迭代对象,同样不会产生任何值,代码更直观简洁。
标准库中的支持情况
Python标准库中没有专门提供创建空异步生成器的内置函数。如果需要复用,可以封装一个泛型版本:
from typing import AsyncGenerator, TypeVar T = TypeVar('T') async def empty_async_gen() -> AsyncGenerator[T, None]: yield from ()
这个版本可以适配任意类型的异步生成器声明。
内容的提问来源于stack exchange,提问作者Ross Bencina
相关产品推荐
相关产品推荐

