【发布时间】:2019-01-11 17:24:06
【问题描述】:
假设我有一个将其他函数作为参数的函数:
Metric = Callable[List[float], float]
def metric_doubler(metric: Metric, lst: List[float]):
return 2*metric(lst)
我想编写其他函数并声明它们的类型为Metric,例如
def my_mean(lst: List[float]) -> float:
return sum(lst)/len(lst)
在这种情况下,有没有办法断言my_mean 的类型为Metric?特别是,真正的用例是当我有很多这样的功能,并且如果我需要更改 Metric 的类型时想要捕获错误。
【问题讨论】:
-
你的意思是“返回”类型吗?
-
我的意思是函数的整个类型:my_mean 可以在任何接受
Callable[List[float], float]的地方使用,但我想在代码中以某种方式声明它。据我所知,没有像my_mean: Metric这样的语法允许 -
似乎模块级别的
my_mean: Metric注释可能会做一些有用的事情。 (我没试过。) -
我会对 3.7 输入支持的答案非常感兴趣
-
您要声明或断言?