代码之家  ›  专栏  ›  技术社区  ›  Maganna Dev

返回lambda的函数的类型批注

  •  2
  • Maganna Dev  · 技术社区  · 7 年前

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

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

    也许这看起来不太有用,但是我想让我的代码保持一致的注释,并且不能用这些类型的函数这样做真的让我很困扰。

    事先谢谢。

    1 回复  |  直到 7 年前
        1
  •  5
  •   Carcigenicate    7 年前

    Callable

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