函数返回lambda的类型注释

时间:2018-07-07 16:31:17

标签: python python-3.x lambda annotations python-3.6

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

def foo(bar : int, lol : int) -> int:
     return bar*lol

但是当我的函数要返回lambda时,我不知道该怎么做:

def line(slope : float, b : float) -> lambda:
     return lambda x: slope*x + b

此示例生成一个错误,我想知道此返回类型应使用什么关键字。

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

先谢谢了。

1 个答案:

答案 0 :(得分:5)

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

from typing import Callable

def line(slope : float, b : float) -> Callable[[float], float]:
     return lambda x: slope*x + b