PyCharm 2025.1 Help

代码补全

基本代码补全帮助您补全可见范围内的类、方法和关键字的名称。

PyCharm 分析上下文并建议从当前光标位置可达的选项。 建议还包括 实时模板。 补全支持非英文键盘布局。

调用基本补全

  • 默认情况下,PyCharm 会在您输入时自动显示代码补全弹出窗口。

    或者,您可以按 Ctrl+Space 或从主菜单中选择 代码 | 代码补全 | 基本

    以下图片展示了基本代码补全的以下情况:

    • 方法:

      补全方法
    • 方法参数:

      补全方法参数
    • 字典:

      补全字典
    • Django 模板:

      补全过滤器
    • Python 字符串字面量中的文件路径补全:

      路径补全
      路径补全
  • 第二次调用 基本代码补全 时,会显示整个项目中类、函数、模块和变量的名称,而不考虑依赖关系。

    类名补全
  • 代码补全可用于 custom file types。 但是,PyCharm 无法识别此类文件的结构,并会建议选项,而不考虑它们是否适合当前上下文。

从列表中接受一个建议

  • Enter 或双击相关列表项,将其插入到光标左侧。

  • 请按 Tab 替换插入点右边的字符。

  • 使用 Ctrl+Shift+Enter 使当前代码结构在语法上正确(平衡括号、添加缺失的大括号和分号等)。

  • 使用特定键和自定义字符接受选定的补全建议。 要启用这些功能,请转到 编辑器 | 常规 | 代码完成 设置页面  Ctrl+Alt+S 并执行以下操作:

    1. 要使用特定键,请选中 通过按空格、点或其他上下文相关键插入选定建议 复选框。 这些键取决于语言、您的上下文等因素。

    2. 若要使用自定义字符,请将字符输入到 接受完成的附加字符 字段。

类型匹配补全

智能类型匹配代码补全 过滤建议列表,并仅显示适用于当前上下文的类型。

调用类型匹配补全

  • 智能类型匹配代码补全 过滤建议列表,并仅显示适用于当前上下文的类型。 要调用类型匹配补全,请开始输入代码并按 Ctrl+Shift+Space。 或者,从主菜单中选择 代码 | 代码补全 | 类型匹配

智能类型补全

语句补全

您可以通过使用语句补全 Ctrl+Shift+Enter 创建语法正确的代码结构。 它会插入必要的语法元素,并将您置于可以开始输入下一条语句的位置。

完成方法声明

  • 开始输入方法声明,并在左括号后按 Ctrl+Shift+Enter

    PyCharm 会自动补全带有必需参数 self 的方法声明。 在 Python 类中开始输入方法声明,PyCharm 会在参数列表的开括号后插入 self。 此行为可在编辑器设置的 智能按键 页面中配置。

    方法的语句补全

完成代码构造

  • 开始输入代码结构体并按 Ctrl+Shift+Enter

    PyCharm 会自动完成构造并添加所需的标点。 文本光标位于下一个编辑位置。

    补全代码结构

补全集合中的语句

  • PyCharm 会在多行集合字面量的换行符前自动插入一个尾随逗号。 在字典字面量中,它会在键和值之间插入冒号。 按 Ctrl+Shift+Enter 调用语句补全:

    补全集合中的当前语句

    请注意,由于某些不完整集合字面量的语法存在语言歧义,在字典字面量的第一个键或括号元组的第一个项目之后不会插入冒号。

Hippie 补全

Hippie completion 是一个补全引擎,它分析您在可见范围内的文本并根据当前上下文生成建议。 它可以帮助您完成任何当前打开的文件中的任何单词。

将文本光标处的字符串扩展为现有单词

  1. 输入初始字符串,然后执行以下操作之一:

    • Alt+/ 或选择 代码 | 代码补全 | Cyclic Expand Word 搜索光标前的匹配词。

    • Alt+Shift+/ 或选择 代码 | 代码补全 | 循环展开单词(向后) 以在文本光标后和其他打开的文件中搜索匹配的单词。

    第一个建议值出现,而且原型在源代码中被高亮显示。

    扩展单词
  2. 接受建议,或者按住 Alt 键并继续按 \ ,直到找到所需的单词。

F-string 补全

每当您在普通字符串字面量中打开一个大括号时,PyCharm 会提供与 f-string 相同的补全建议。 当您选择其中一个建议选项时,IDE 会通过添加缺失的 f 前缀和一个闭合大括号,自动将字面量转换为 f-string。

F-string 补全

模块名称补全时自动导入

当您在 Python 代码中引用任何模块成员或包并调用代码补全时,PyCharm 会自动添加导入语句。 代码补全时自动导入也适用于一些流行的包名称别名,例如 np 对应 numpypd 对应 pandas

代码补全时自动导入

机器学习辅助的补全排序

PyCharm 允许您根据其他用户在类似情况下的选择来优先考虑补全建议。

ML 补全机制不会添加任何新元素,而是对从代码中检索的元素进行排序。 数据不会暴露在任何地方;它是在本地收集的。

启用 ML 补全排序

  1. Ctrl+Alt+S 打开设置并选择 编辑器 | 常规 | 代码完成

  2. 机器学习辅助补全 下,启用 根据机器学习对补全建议进行排序 选项并选择您希望使用 ML 补全的语言。

    ML 辅助补全设置

启用相关性标记

  1. Ctrl+Alt+S 打开设置并选择 编辑器 | 常规 | 代码完成

  2. 启用以下选项:

    • 在补全弹出窗口中标记位置更改 :使用 机器学习排名提升机器学习排名降序 图标来指示建议的重要性是增加还是减少,因此建议已在建议列表中上移或下移。

    • 在补全弹出窗口中标记最相关的条目 :请使用 与机器学习相关的建议 图标标识列表中最合适的建议。

    建议列表将如下显示,图标标记重新排序和最相关的条目。

    已启用 ML 补全

配置代码补全设置

要配置代码补全选项,请转到 编辑器 | 常规 | 代码完成 设置页面  Ctrl+Alt+S

您可以选择以下设置:

项目

描述

区分大小写

选择是否要考虑字母大小写来提供代码补全建议。 选择是匹配首字母的大小写还是所有字母的大小写。

自动插入单个建议到

如果对基础和智能类型匹配补全只有一个建议,则自动完成代码。

按字母顺序对建议排序

选择是否按字母顺序排序建议列表中的项,而不是按相关性排序。

您可以随时通过点击建议列表中的 并切换 按名称排序 选项来更改此行为。

输入时显示建议

选择是否希望建议列表自动弹出,而无需明确调用补全功能。 此选项默认已启用。

通过按空格、点或其他上下文相关键插入选定建议

选择是否通过输入根据语言、上下文等因素确定的特定键来插入所选建议。

以下时间后显示文档弹出窗口

选择自动显示弹出窗口,其中包含建议列表中当前突出显示的类、方法或字段的文档。

在右侧字段中,指定弹出窗口应出现的延迟时间(以毫秒为单位)。

适用时自动插入圆括号

如果启用此选项,PyCharm 将在您完成函数或方法时自动插入一对开闭括号。

启用插入括号功能

取消选中该复选框以禁止自动插入括号。

如果您使用一个开括号 ( 而不是 Enter 从完成列表中应用选定项,那么无论该选项是否打开,括号都会自动插入。

完成时插入括号已禁用。 在补全带有开括号的情况下,仍然会插入括号。

要使用 ( 开括号代替 Enter 来应用补全列表中的选定项,请打开 设置 对话框(Ctrl+Alt+S ),转到 编辑器 | 常规 | 代码完成 ,并选中 通过按空格、点或其他上下文相关键插入选定建议 复选框。

如需更多信息,请参阅 Use specific keys to insert suggestions

HTML

启用在 HTML 文本中输入时标签名称代码补全的自动弹出

在 HTML 上下文中,PyCharm 默认即使在您输入纯文本而没有开尖括号时也会显示补全建议。

清除复选框以关闭自动弹窗。

机器学习辅助补全

基于机器学习排序完成建议

如果您希望使用机器学习模型将最合适的项目在建议列表中排名更高,请选择此选项。 选择您希望启用基于机器学习的建议的语言。

在补全弹出窗口中标记位置更改

请使用 机器学习排名提升机器学习排名降序 图标来指示建议的相关性是增加还是减少,因此建议在建议列表中的位置已经上升或下降。

在补全弹出窗口中标记最相关的条目

请使用 与机器学习相关的建议 图标来指示列表中最合适的建议。

Python

在基础补全中建议可导入的类、函数和变量

默认情况下,PyCharm 建议导入顶级类、函数和变量。

清除复选框以关闭这些建议。 您仍然可以通过调用基本代码补全两次手动触发它们。

JavaScript

仅基于类型补全

默认情况下,PyCharm 提供符号补全建议,而不考虑它们的类型。 使用这种方法,在复杂情况下,列表会显示多个补全变体。

若要使补全更加精准,请选择此选项。 完成列表将很大程度上依赖于 PyCharm 推理。 因此,如果推理效果不佳,该列表可能会保持为空。

为可空类型建议带有可选链的条目

默认情况下,PyCharm 会建议带有 可选链操作符 (?)的符号的补全。 取消选中此复选框以抑制此行为。

在重写补全中展开方法体

默认情况下,当您想要重写父类或接口中的方法并从补全建议列表中选择此方法时,PyCharm 会自动添加参数,生成 super() 调用,并在可能的情况下添加类型信息。

取消选中此复选框以在完成期间禁止自动生成重写的方法体。

补全名称

  • 建议变量和参数名称 :默认情况下,复选框为空。 选中后,PyCharm 会在声明新类字段、变量和参数时建议名称。 这些建议是基于您的项目中定义的类、类型和接口的名称,您使用的库以及标准 API。

  • 为类字段建议名称

    默认情况下,该选项处于关闭状态。

  • 为建议的参数名称添加类型注解 :选中此复选框以提供每个完成建议的类型信息。

    仅当选中 建议变量和参数名称 复选框时,此复选框才可用。

参数信息

显示参数信息弹出窗口(毫秒)

选中此复选框以便 PyCharm 在编辑器中输入左括号或从建议列表中选择方法时自动显示所有可用方法签名的弹出窗口。

在右侧的文本字段中,指定弹出窗口应出现的延迟时间(以毫秒为单位)。

如果未选中此复选框,请使用 Ctrl+P 显示参数信息。

显示完整的方法签名

如果选择此复选框,参数信息将显示完整签名,包括方法名和返回类型。

SQL

建议对象来源

选择对象的建议来源:

  • 仅当前搜索路径 :仅为控制台选择的模式。

    有关选择架构的更多信息,请参阅 选择默认模式

  • 当前范围 :当前为控制台选择的模式和系统模式(例如,PostgreSQL 中的 pg_catalog)。

  • 所有可用模式 :所有内省模式。

仅建议来自当前路径的对象
建议来自所有模式的对象
建议来自所有模式的对象

限定对象使用

选择在何种情况下将对象限定为数据库、模式、表和视图,以及表和视图的别名。

对象始终限定为表
对象从不限定为表

限定对象在

选择在给定情况下将对象限定为何种内容。

JOIN 补全中的对象始终限定
JOIN 补全中的对象从不限定

在JOIN 补全中使用别名

JOIN 语句中为表创建别名。

在 JOIN 补全中使用别名

反转自动生成的ON 子句中操作数的顺序

ON 子句中切换操作数。 当复选框被清除时, FROM 表在 JOIN 条件中排在第一位。

反转自动生成的 ON 子句中操作数的顺序

根据名称匹配建议非严格外键

JOIN 语句生成可能的代码补全建议列表。 代码补全列表包括来自其他表的列建议,这些列与 JOIN 语句中的表的列同名。

阅读有关此选项调试规则的更多信息: 虚拟外键的调试规则

建议基于名称匹配的非严格外键已开启
基于名称匹配的推荐非严格外键已关闭

在补全表名时自动添加别名

为表名创建别名。

在补全表名时自动添加别名

在表名之后的补全中建议别名

在使用代码完成时为表名建议一个别名 (Ctrl+Space)。

在表名之后的补全中建议别名

自定义别名(表)

您可以添加表名以及想要用于此表的别名。 要添加 table-alias 对,请点击 添加别名 按钮 (添加别名按钮)。

完成提示和技巧

缩小建议列表

  • 通过键入单词的任何部分(即使是中间的字符)或在点分隔符后调用代码补全来缩小建议列表范围。

    PyCharm 显示包含您输入字符的建议,无论其位置如何。 这使得不再需要使用通配符。

    codeCompletionWildcard.png

    对于 CamelCasesnake_case 名称,请仅输入首字母。 PyCharm 会自动识别和匹配首字母。

查看参考

  • 您可以在建议列表中选择一个条目时,按 Ctrl+Shift+I 使用 快速定义视图

    快速定义
  • 您可以通过在建议列表中选择一个条目时按 Ctrl+Q 使用 快速信息视图

    快速文档

查看代码层次结构

当您从建议列表中选择一个条目时,可以查看代码层次结构:

  • Ctrl+H :查看类型层次结构

  • Ctrl+Shift+H :查看方法层次结构。

故障排除

如果代码补全不起作用,可能是以下原因之一:

  • 省电模式 在 (文件 | 省电模式)。 开启它可以通过消除后台操作(包括错误高亮、即时检查和代码补全)来最大限度地减少笔记本电脑的电量消耗。

  • 您的文件不在内容根目录中,因此无法获得代码补全所需的类定义和资源。

    有关更多信息,请参见 配置项目结构

  • 包含您希望出现在补全建议列表中的类和函数的文件被标记为纯文本文件。

  • 包含您希望出现在补全建议列表中的函数的外部库未被 添加为依赖项或全局库

  • 如果收集代码补全选项花费的时间太长,代码补全弹出窗口可能不会自动出现。 例如,如果计算机正在忙于其他任务。 在这种情况下,您仍然可以通过 Ctrl+Space 手动激活代码补全弹出窗口。

最后修改日期: 2025年 4月 23日
OSZAR »