【问题标题】:Type annotation for function returning a lambda返回 lambda 的函数的类型注释
【发布时间】:2018-12-15 22:11:33
【问题描述】:

我非常喜欢在 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

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

也许这看起来没那么有用,但我想保持我的代码一致注释并且无法使用这些类型的函数这样做真的很困扰我。

提前致谢。

【问题讨论】:

  • 好吧,解释器从来没有真正检查过这些,但我的尝试是无效的语法。你提出的建议很好,对我来说很有意义。请将其发布为答案,以便我接受。谢谢。

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


【解决方案1】:

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

from typing import Callable

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-15
    • 2021-10-20
    • 2017-02-10
    • 1970-01-01
    • 1970-01-01
    • 2022-01-12
    • 2021-10-15
    相关资源
    最近更新 更多