How to annotate a generator in python3? How to annotate a generator in python3? python python

How to annotate a generator in python3?


While Generator[x, y, z] exists, most of the time, you might want to use the less verbose Iterator:

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

Also works for yield

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


The typing module defines the Generator type, which you can use like:

Generator[yield_type, send_type, return_type] 

See also PEP 0484.