python - 如何在 python3 中注释生成器?

标签 python python-3.x annotations

Python 3.x 支持(可选)函数注解:

def add_ints(x:int, y:int) -> int :
    return x+y

我有时会遇到如何表示给定“类型”的问题,而这一次,我有一个返回生成器的函数:

def myfunc(x: [int]) -> "generator that returns ints":
    #                     ^~~~~~~~~~~~~~~~~~~~~~~~~~
    return (n for n in x if n%2 == 0)

返回值应该怎么注解?有什么引用可以引用吗?

最佳答案

虽然 Generator[x, y, z] 存在,但大多数时候,您可能希望使用更简洁的 Iterator:

def fn(x: int) -> Iterator[int]:
    return (n for n in range(x) if n%2 == 0)

也适用于 yield

def fn(x: int) -> Iterator[int]:
    for n in range(x):
        yield n

关于python - 如何在 python3 中注释生成器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27264250/

相关文章:

python - Flask 断线子进程 stdout python3

python - 在 Jupyter cdef 中运行 Cython

java - 不存在类型变量的实例,因此 T 符合注释

python - 创建 df 或其他数组,对另一个 df 中满足特定条件的条目进行计数

python - 将 datetime.timedelta 对象转换为 HH :MM

python-3.x - 如何创建一个简单的 python 暴力破解函数?

python - Numpy 将字母评估为整数

java - @PropertyKey 注解不适用于 Kotlin,但适用于 Java

java - OpenEntityManagerInViewFilter批注配置

python - 检测按键而不阻塞