我正在尝试使用Python中的类型注释。除了那些将另一个函数作为参数的函数之外,大多数情况都非常清楚。
考虑以下示例:
undefined
输出仅显示from __future__ import annotations
def func_a(p:int) -> int:
return p*5
def func_b(func) -> int: # How annotate this?
return func(3)
if __name__ == "__main__":
print(func_b(func_a))
。
如何在15
中注释func
参数?
答案
谢谢@Alex提供的答案。 func_b( )
模块提供了typing
注释(请参阅:python docs)。以我的示例为例,
Callable
如您所见,遵循该方案,from __future__ import annotations
from typing import Callable
def func_a(p:int) -> int:
return p*5
def func_b(func: Callable[[int], int]) -> int:
return func(3)
if __name__ == "__main__":
print(func_b(func_a))
注释本身也被注释了:
Callable
答案 0 :(得分:4)
您可以将typing
模块用于Callable
注释。
Callable
批注提供了参数类型和返回类型的列表:
from typing import Callable
def func_b(func: Callable[[int], int]) -> int:
return func(3)
答案 1 :(得分:0)
难道不是function
吗?
>>> type(func_a)
function