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

Python如何基于函数返回值创建类型?存根类型无法导入问题

解决自定义类型存根无法导入类型的问题

方法一:利用ReturnType直接基于函数返回值标注

Python的typing模块(Python 3.10+也可使用types模块)提供了ReturnType类型,能直接从函数推导其返回类型,无需导入存根中定义的具体类型,完全满足静态类型检查(Pylance)的需求。

示例代码:

from typing import ReturnType
# 导入第三方库的函数
from your_third_party_lib import id_info

def some_func(idInfo: ReturnType[id_info]):
    pass

如果需要的是返回类型中去掉Optional的实际类型(即IdInfoTuple而非Optional[IdInfoTuple]),可以结合get_args提取:

from typing import ReturnType, get_args
from your_third_party_lib import id_info

# 静态检查阶段Pylance能正确识别该类型
IdInfoType = get_args(ReturnType[id_info])[0]

def some_func(idInfo: IdInfoType):
    pass

方法二:修复存根文件的导入问题

如果存根文件无法被识别,可能是路径配置问题:

  • 确保存根文件命名与第三方库模块名一致(比如第三方库是foo,存根文件为foo.pyi)
  • 将存根文件所在目录添加到PYTHONPATH,或者在项目根目录创建pyrightconfig.json,配置stubPath指向存根目录:
{
  "stubPath": "./typings"
}

配置完成后即可直接导入存根中的类型:

from your_third_party_lib import IdInfoTuple

def some_func(idInfo: IdInfoTuple):
    pass

内容的提问来源于stack exchange,提问作者Mohammad Hossein Amri

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 00:42:47