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

Jin*_*hoi 2 python type-hinting python-3.x

在以下代码中:

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

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

print(a(1, b))
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*ers 6

使用typing.Callable泛型表示您期望一个函数接受一个整数参数,返回一个整数:

from typing import Callable

def a(i: int, b: Callable[[int], int]) -> int:
    return i + b(i)
Run Code Online (Sandbox Code Playgroud)

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