如何在 python 3.6 中输入 hinte 高阶函数?

How to type hinte higher-order functions in python 3.6?

在下面的代码中:

def b(i: int) -> int:
    return i

def a(i: int, b: ?) -> int:
    return i + b(i)

print(a(1, b))

我们如何键入提示作为 a 参数的函数 b: ??谢谢。

使用 typing.Callable generic 表示您希望函数采用单个整数参数,returning 一个整数:

from typing import Callable

def a(i: int, b: Callable[[int], int]) -> int:
    return i + b(i)

Callable[...] 有两个参数,第一个是参数类型列表,第二个是 return 类型。