用法:
class typing.Generator(Iterator[T_co], Generic[T_co, T_contra, V_co])
生成器可以由泛型类型
Generator[YieldType, SendType, ReturnType]
注释。例如:def echo_round() -> Generator[int, float, str]: sent = yield 0 while sent >= 0: sent = yield round(sent) return 'Done'
请注意,与类型模块中的许多其他泛型不同,
Generator
的SendType
的行为是逆变的,而不是协变或不变的。如果您的生成器只会产生值,请将
SendType
和ReturnType
设置为None
:def infinite_stream(start: int) -> Generator[int, None, None]: while True: yield start start += 1
或者,将您的生成器注释为返回类型为
Iterable[YieldType]
或Iterator[YieldType]
:def infinite_stream(start: int) -> Iterator[int]: while True: yield start start += 1
自 3.9 版后已弃用:
collections.abc.Generator
现在支持[]
.看PEP 585和通用别名类型.
相关用法
- Python typing.Generic用法及代码示例
- 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.AsyncGenerator用法及代码示例
- 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.org大神的英文原创作品 typing.Generator。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。