PyCharm 中的类型提示
最后修改时间:2023 年 8 月 24 日PyCharm 提供了各种方法来协助检查和检查脚本中对象的类型。PyCharm使用PEP 484定义的模块和格式支持函数注释和类型注释中的类型提示。typing
添加类型提示
尽管 PyCharm 支持PEP 484中支持的所有添加类型的方法,但通过意图操作使用类型提示是最方便的方法。根据您使用的解释器,类型将作为注释 (Python 3) 或注释 (Python 2) 添加。
要添加类型提示,请按照下列步骤操作:
选择一个代码元素。
按。AltEnter
选择添加类型提示...。
按完成操作或编辑类型(如果适用)。Enter
例子 | 意图 行动 | 注释的结果代码 (Python 3) |
---|---|---|
变量 | ||
功能 | ||
类属性 |
例子 | 意图 行动 | 注释的结果代码 (Python 2) |
---|---|---|
变量 | ||
功能 | ||
类属性 |
您还可以使用Python 存根来指定变量、函数和类字段的类型。
转换评论
对于基于注释的类型提示,PyCharm 建议使用意图操作,允许您将基于注释的类型提示转换为变量注释。此意图的名称为Convert to variable annotation,工作原理如下:
警告
Python 3 中提供了此功能。
前 | 后 |
---|---|
|
|
类型提示验证
每当您应用类型提示时,PyCharm 都会根据支持的 PEP检查类型是否正确使用。如果存在使用错误,则会显示相应的警告并建议建议的操作。以下是验证示例。
验证错误 | 建议采取的行动 |
---|---|
类型声明重复。 | 删除任一类型声明。 |
类型声明中的参数数量与函数参数的数量不同。 | 调整参数的数量。 |
解包时输入的注释与相应的目标不匹配。 | 检查目标格式并相应修改类型注释。 |
参数语法不正确 | 使用建议的格式并添加所需的括号来包裹 |
赋值表达式中存在意外类型。 | 对齐类型以匹配预期模式。 |
为变量赋值 | 您不能更改注释为 的变量 |
继承一个注释为 的类 | 您不能继承带有注释的类 |
重写用 装饰的方法 | 您不能重写用 修饰的方法 |
函数参数的类型不正确。 | 将字典 |
将错误类型的值分配给类型中的键 |
|
在类型中使用错误的键 | 按照类型定义中指定的方式分配键:
|
修饰函数的错误使用。PyCharm 根据装饰器的类型验证装饰函数的类型: | 根据需要修改装饰器或者使用函数return的语句。 |
您可以添加# type: ignore
或# noqa
注释来抑制类型验证警告或忽略缺少的导入语句。
Python 存根
您可以使用Python 存根文件来使用 Python 3 语法指定类型提示。无论解释器中使用哪个 Python 版本,这些提示都将在您的 Python 文件中可用。
在以下示例中,sample_function
来自存根文件 ( stubs.pyi ) 的类型提示在 Python 文件 ( stubs.py )中可用:
如果您使用的软件包检测到存根模拟,则会显示以下消息:
您可以安装存根包,忽略此消息并继续使用当前安装的包,或者在项目Settings中禁用此类检查。
笔记
当您选择安装包时,PyCharm 会尝试安装存根包的最新可用版本。如果它与当前使用的非存根包不兼容,安装过程将终止。
提示
您可以在“可用包”对话框中指定要安装的包的特定版本。
使用 Typeshed
Typeshed是一组带有标准 Python 库和各种包的类型注释的文件。Typeshed 存根提供了使用类型提示定义的 Python 类、函数和模块的定义。PyCharm 使用此信息来更好地完成代码、检查和其他代码洞察功能。
PyCharm 与Typeshed存根捆绑在一起。可用的 Typeshed 存根列表显示在项目视图中的节点外部库 |下。<Python解释器> | 类型化存根。
要使用您自己的版本覆盖捆绑的 Typeshed 存储库,请按照以下步骤操作:
将部分或全部存根复制到项目中的目录中。
通过选择将目录标记为| 将目录标记为源根目录 Sources目录的上下文菜单中的根。
Python 骨架存储库https://github.com/JetBrains/python-sculpts现已弃用。
感谢您的反馈意见!