热线电话:13121318867

登录
2019-01-23 阅读量: 742
键入 - 函数返回值类型与表达式的类型相同

考虑一下代码:

def foo() -> ??:

return bar()

我怎么能说我希望返回类型与返回类型foo相同bar()?

在C ++中我可以使用decltype,类似于:

auto foo() -> decltype(bar()) {

return bar();

}

##############################

如果bar已定义,则可以访问其签名

In [1] from inspect import signature

In [2]: def bar(a: int) -> float:

...: return float(a)

...:

In [3]: def foo(a: int) -> signature(bar).return_annotation:

...: return bar(a)

...:

In [4]: signature(foo)

Out[4]: <Signature (a: int) -> float>

话虽这么说,我不确定你是否需要这样做,如果你这样做静态类型检查,因为foo可以从bars 推断返回类型(至少PyCharm的静态分析器倾向于这样做)

0.0000
0
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子