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

如何为无类型提示的Python库添加类似TypeScript .d.ts的类型提示?

Python 中为无类型提示的第三方库补充类型信息的方案

当然有,Python里对应的方案是存根文件(Stub Files),后缀为.pyi,和TypeScript的.d.ts作用完全一致——不用修改原库代码,单独提供类型描述信息,让类型检查器识别。

具体怎么用?

针对你给出的例子,不需要写继承包装类,只需要创建一个和原库模块同名(或对应路径)的.pyi文件,在里面定义好类型提示即可:

比如原库模块叫thirdparty_lib.py,你就创建thirdparty_lib.pyi,内容如下:

class The_Class_I_Want_To_Use:
    def foo(self, foo: str, bar: str) -> bool: ...
  • 存根文件里只需要写类型结构,函数体用...占位就行,不用实现逻辑
  • 类型检查器(比如mypy、pyright、Pylance)会自动读取这个文件的类型信息,和原库的实际代码配合使用

怎么让类型检查器找到存根文件?

  • 最简单的方式:把.pyi文件放在和原库模块相同的目录下,或者放在项目根目录的typings文件夹里(部分工具默认会扫描这个目录)
  • 也可以通过配置文件指定存根路径,比如mypy的mypy.ini里设置stubpath = ./typings

和你想到的继承包装对比

存根文件的优势在于完全不需要修改或包装原库的类/函数,只需要补全类型信息就行,不用写冗余的包装代码,维护成本低得多。

内容的提问来源于stack exchange,提问作者J'e

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 22:22:09