如何通过函数注释指示函数需要函数作为参数或返回函数?

时间:2013-12-20 02:51:24

标签: python function python-3.x annotations

您可以在python 3中使用function annotations来指示参数的类型和返回值,如下所示:

def myfunction(name: str, age: int) -> str:
    return name + str(age) #usefulfunction

但是如果你编写的函数需要函数作为参数,或者返回一个函数呢?

我意识到你可以为注释编写任何有效的表达式,所以我可以将“function”写成一个字符串,但这是最好/唯一的方法吗?没有像内置类型int/float/str/list/dict等那样的东西吗?我知道callable,但我想知道是否还有其他事情。

2 个答案:

答案 0 :(得分:7)

没有为注释定义样式。使用callabletypes.FunctionType或字符串。

PS:{3.0}和3.1

中没有callable

答案 1 :(得分:4)

非常有趣......我从未听说过Python 3中的函数注释。解释器中的以下代码建议您可以使用function代替strint 。只是我的两分钱。

>>> a = lambda x: x*2
>>> type(a)
<class 'function'>