How to annotate a generator in python3?

后端 未结 2 783
庸人自扰
庸人自扰 2021-02-12 11:06

Python 3.x supports (optional) function annotations:

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

I sometimes encounter problems as to

相关标签:
2条回答
  • 2021-02-12 11:26

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

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

    Also works for yield

    def add_ints(x: int) -> Iterator[int]:
        for n in range(x):
            yield n
    
    0 讨论(0)
  • 2021-02-12 11:36

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

    Generator[yield_type, send_type, return_type] 
    

    See also PEP 0484.

    0 讨论(0)
提交回复
热议问题