You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python:如何静态引用导入函数的返回类型?

如何让代码检查器与类型检查器识别导入函数的返回类型

可以做到,以下是符合你要求的静态解决方案:

方案一:使用ReturnType类型工具(推荐)

Python 3.12及以上版本的标准库typing模块提供了ReturnType,低版本可通过typing_extensions库引入。它能静态提取函数的返回类型,完全满足你的三个要求:无需调用函数、纯静态分析、不用直接导入未对外暴露的返回类型。

示例代码:

# Python3.12+ 直接用标准库
from typing import ReturnType
# 低版本先安装typing_extensions,再导入
# from typing_extensions import ReturnType

from module import func

# 提取func的返回类型
FuncReturnType = ReturnType[func]

x: FuncReturnType = 22  # 类型检查器会识别为T3,linter也能正常校验

主流类型检查器(如mypy、pyright、pyre)都原生支持该语法,能准确识别函数返回类型,即便该类型未对外暴露。

方案二:直接访问函数的注解字典

你也可以通过函数的__annotations__属性静态获取返回类型注解,部分类型检查器支持这种写法:

from module import func

x: func.__annotations__['return'] = 22

不过这种写法不如ReturnType规范,当函数涉及泛型或复杂类型注解时,可靠性稍差,优先推荐第一种方案。

你示例中设想的func.return_type语法目前Python官方并未支持,但上述方案已能实现你想要的效果。

内容的提问来源于stack exchange,提问作者Alex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 15:22:12