考虑一下代码:
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的静态分析器倾向于这样做)








暂无数据