函数返回lambda的类型注释

Mag*_*Dev 3 python lambda annotations python-3.x python-3.6

我非常喜欢在Python中使用类型注释的想法。我知道如何通过以下简单示例进行操作:

def foo(bar : int, lol : int) -> int:
     return bar*lol
Run Code Online (Sandbox Code Playgroud)

但是当我的函数要返回lambda时,我不知道如何执行此操作:

def line(slope : float, b : float) -> lambda:
     return lambda x: slope*x + b
Run Code Online (Sandbox Code Playgroud)

这个例子产生了一个错误,我想知道这个返回类型应该使用什么关键字。

也许这似乎没什么用,但是我想对代码进行一致的注释,而无法使用这些类型的函数这样做确实让我感到困扰。

提前致谢。

Car*_*ate 6

您可以使用Callable键入提示返回:

from typing import Callable

def line(slope : float, b : float) -> Callable[[float], float]:
     return lambda x: slope*x + b
Run Code Online (Sandbox Code Playgroud)