PyCharm 2025.3 Help

在 PyCharm 中进行类型提示

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

添加类型提示

尽管 PyCharm 支持 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 存根 来指定变量、函数和类字段的类型。

使用注解指定返回类型

您可以使用 Python 3 注解来标注函数的返回类型。 PyCharm 将为您插入返回类型注解,随后您可以按需调整类型:

  1. 将插入符号置于函数名处,然后按 Alt+Enter

  2. 在打开的意图操作列表中,选择 使用注解指定返回类型

使用注解指定返回类型

转换注释

对于基于注释的类型提示,PyCharm 会建议一项意图操作,允许您将基于注释的类型提示转换为变量注解。 此意图名为 转换为变量注解 ,其工作方式如下:

之前

之后

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

验证类型提示

每当您应用类型提示时,PyCharm 都会根据 受支持的 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})

被装饰函数的用法不正确。 PyCharm 会基于其装饰器的类型验证被装饰函数的类型:

推断被装饰函数的类型

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

您可以添加 # type: ignore# noqa 注释,以抑制类型验证警告或忽略缺少导入语句。

忽略类型验证

Python 存根

您可以使用 Python 存根文件 ,以 Python 3 语法指定类型提示。 无论在 解释器 中使用哪个 Python 版本,这些提示将在您的 Python 文件中可用。

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

如果检测到您正在使用的包存在对应的存根包,将显示以下消息:

存根包检查

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

使用 Typeshed

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

PyCharm 随附 Typeshed 存根。 可用的 Typeshed 存根列表会显示在项目视图中节点 外部库 | <Python 解释器> | Typeshed 存根 下。

要使用您自己的版本覆盖随附的 Typeshed 存储库,请按以下步骤操作:

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

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

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

最后修改日期: 2025年 12月 2日