DataSpell 2025.2 Help

类型提示

DataSpell 提供多种方法来帮助检查和验证脚本中对象的类型。 DataSpell 支持在函数注解和类型注释中使用 类型提示 ,使用 typing 模块和 PEP 484 定义的格式。

添加类型提示

尽管 DataSpell 支持 PEP 484 中支持的所有添加类型的方法,但通过意图操作使用类型提示是最方便的方式。 根据所使用的解释器,类型将作为注解(Python 3)或注释(Python 2)添加:

  1. 选择一个代码元素。

  2. 按下 Alt+Enter

  3. 选择 为 ... 添加类型提示

  4. Enter 完成操作,或在适当时编辑类型。

示例

意图操作

注解的结果代码(Python 3)

变量

为变量添加类型提示的示例
为变量添加类型提示的示例(Python 3)

函数

为函数添加类型提示的示例
为函数添加类型提示的示例(Python 3)

类属性

为类属性添加类型提示的示例
为类属性添加类型提示的示例(Python 3)

示例

意图操作

注释的结果代码(Python 2)

变量

为变量添加类型提示的示例
为变量添加类型提示的示例(Python 2)

函数

为函数添加类型提示的示例
为函数添加类型提示的示例(Python 2)

类属性

为类属性添加类型提示的示例
为类属性添加类型提示的示例(Python 2)

您还可以使用 Python 存根 来指定变量、函数和类字段的类型。

转换注释

对于基于注释的类型提示,DataSpell 提供了一种意图操作,允许您将基于注释的类型提示转换为变量注解。 此意图的名称为 转换为变量注解 ,其工作方式如下:

添加前

添加后

from typing import List, Optional xs = [] # type: List[Optional[str]]
from typing import List, Optional xs: List[Optional[str]] = []

验证类型提示

每当您应用类型提示时,DataSpell 会根据 支持的 PEP 检查类型是否正确使用。 如果存在使用错误,将显示相应的警告并建议推荐的操作。 以下是验证示例。

验证错误

建议的操作

类型声明重复。

类型提示不正确

移除其中一个类型声明。

类型声明中的参数数量与函数参数数量不匹配。

参数过多

调整参数数量。

带有解包的类型注释与相应的目标不匹配。

解包变量的类型不正确

检查目标格式并相应修改类型注释。

Callable 参数的语法不正确。

Callable 格式不正确

使用建议的格式并添加必要的括号以包裹 Callable 参数。

赋值表达式中的类型意外。

赋值表达式中的类型意外

调整类型以匹配预期模式。

Final 变量赋值。

为 Final 变量赋值

您不能更改标注为 Final 的变量。 考虑更改变量的类型。

继承标注为 Final 的类。

继承 final 类

您不能继承带有 Final 标注的类。 考虑创建另一个类。

重写带有 @final 装饰的方法。

重写 final 方法

您不能重写带有 @final 装饰的方法。 考虑定义另一个方法。

函数参数的类型不正确。

函数参数类型验证

将字典传递给 foo() 函数,而不是列表。

TypedDict 类型中的键分配了错误类型的值。

TypedDict 类的类型验证

year 的值提供为 int

add_movie({'title': 'Blade Runner', 'year': 1982})

TypedDict 类型中使用了错误的键:

缺少键或多余键错误

按照类型定义中指定的方式分配键:

add_movie({'title': 'Blade Runner', 'year': 1982})

装饰函数的使用不正确。 DataSpell 根据装饰器的类型验证装饰函数的类型:

推断装饰函数的类型

根据需要修改装饰器或使用函数返回值的语句。

您可以添加 # type: ignore# noqa 注释以抑制类型验证警告或忽略缺失的导入声明。

忽略类型验证

Python 存根

DataSpell 支持 Python 存根文件。

在以下示例中,来自存根文件( stubs.pyi )的 sample_function 类型提示在 Python 文件( stubs.py )中可用:

如果您正在使用检测到具有存根对应物的包,则会出现以下消息:

存根包检查

您可以安装存根包,忽略此消息并继续使用当前安装的包,或在项目 设置 中禁用此类检查。

使用 Typeshed

Typeshed 是一组为标准 Python 库和各种包提供类型注解的文件。 Typeshed 存根为使用类型提示定义的 Python 类、函数和模块提供定义。 DataSpell 使用此信息来改进代码补全、检查和其他代码洞察功能。

DataSpell 随附 Typeshed 存根。 可用的 Typeshed 存根列表显示在项目视图中的节点 外部库 | <Python interpreter> | Typeshed Stubs 下。

要使用您自己的版本覆盖捆绑的 Typeshed 仓库,请按照以下步骤操作:

  1. 将部分或全部存根复制到项目中的某个目录。

  2. 通过从目录的上下文菜单中选择 标记目录为 | 源代码根目录 ,将目录标记为源根。

Python skeletons 仓库 https://github.com/JetBrains/python-skeletons 现已被弃用。

最后修改日期: 2025年 9月 27日