用法:
class typing.AsyncGenerator(AsyncIterator[T_co], Generic[T_co, T_contra])
異步生成器可以由泛型類型
AsyncGenerator[YieldType, SendType]
注釋。例如:async def echo_round() -> AsyncGenerator[int, float]: sent = yield 0 while sent >= 0.0: rounded = await round(sent) sent = yield rounded
與普通生成器不同,異步生成器不能返回值,因此沒有
ReturnType
類型參數。與Generator
一樣,SendType
的行為是逆變的。如果您的生成器隻會產生值,請將
SendType
設置為None
:async def infinite_stream(start: int) -> AsyncGenerator[int, None]: while True: yield start start = await increment(start)
或者,將您的生成器注釋為返回類型為
AsyncIterable[YieldType]
或AsyncIterator[YieldType]
:async def infinite_stream(start: int) -> AsyncIterator[int]: while True: yield start start = await increment(start)
版本 3.6.1 中的新函數。
自 3.9 版後已棄用:
collections.abc.AsyncGenerator
現在支持[]
.看PEP 585和通用別名類型.
相關用法
- Python typing.AnyStr用法及代碼示例
- Python typing.get_type_hints用法及代碼示例
- Python typing.Concatenate用法及代碼示例
- Python typing.Optional用法及代碼示例
- Python typing.Final用法及代碼示例
- Python typing.TypedDict.__optional_keys__用法及代碼示例
- Python typing.Protocol用法及代碼示例
- Python typing.NoReturn用法及代碼示例
- Python typing.TypedDict.__total__用法及代碼示例
- Python typing.is_typeddict用法及代碼示例
- Python typing.TypeVar用法及代碼示例
- Python typing.final用法及代碼示例
- Python typing.ClassVar用法及代碼示例
- Python typing.ParamSpec用法及代碼示例
- Python typing.Literal用法及代碼示例
- Python typing.overload用法及代碼示例
- Python typing.TYPE_CHECKING用法及代碼示例
- Python typing.TypedDict用法及代碼示例
- Python typing.List用法及代碼示例
- Python typing.Generic用法及代碼示例
注:本文由純淨天空篩選整理自python.org大神的英文原創作品 typing.AsyncGenerator。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。