代码补全
基本代码补全可帮助您在可见性范围内完成类、方法和关键字的名称。
PyCharm 会分析上下文,并建议可从当前插入符号位置访问的选项。 建议还包括 实时模板。 在非英文键盘布局下也可使用补全。
调用基本补全
默认情况下,PyCharm 会在您输入时自动显示代码补全弹出窗口。
或者,您可以按 Ctrl+Space ,或从主菜单中选择 。
第二次调用 基本代码补全 时,将显示整个项目中的类、函数、模块和变量名称,而不考虑依赖关系。
代码补全适用于 自定义文件类型。 但是,PyCharm 无法识别此类文件的结构,并且无论它们是否适用于当前上下文,都会提供选项。
从列表中接受建议
按 Enter 或双击相关列表项,将其插入到插入符号左侧。
按 Tab 可替换插入符号右侧的字符。
使用 Ctrl+Shift+Enter 使当前代码构造在语法上正确(配平括号、添加缺失的大括号和分号等)。
使用特定按键和自定义字符接受所选的补全建议。 要启用这些功能,请转到 编辑器 | 常规 | 代码补全 设置页面  Ctrl+Alt+S ,并执行以下操作:
要使用特定按键,请选中 按空格、点或其他取决于上下文的键插入所选建议 复选框。 这些按键取决于语言、您的上下文等。
若要同时使用自定义字符,请在 用于接受补全的其他字符 字段中输入这些字符。
F 字符串补全
在普通字符串字面量中每当您输入左花括号时,PyCharm 都会提供与 f 字符串相同的补全建议。 当您选择其中一个建议选项时,IDE 会通过添加缺失的 f 前缀和右花括号,自动将该字面量转换为 f 字符串。
模块名称补全时自动导入
在 Python 代码中引用任何模块成员或包并调用代码补全时,PyCharm 会自动添加 import 语句。 代码补全时的自动导入还适用于某些常用的包名别名,例如将 np 用于 numpy ,或将 pd 用于 pandas。
机器学习辅助的补全排序
PyCharm 允许您根据其他用户在类似情况下的选择为补全建议设定优先级。
ML 补全机制不会添加任何新元素,只会对从代码中检索的元素进行排序。 数据不会在任何地方暴露;会在本地收集。
启用 ML 补全排序
按 Ctrl+Alt+S 打开设置并选择 编辑器 | 常规 | 代码补全。
在 机器学习辅助补全 下,启用 根据机器学习对补全建议进行排序 选项,并选择您希望使用 ML 补全的语言。

启用相关性标记
按 Ctrl+Alt+S 打开设置并选择 编辑器 | 常规 | 代码补全。
启用以下选项:
在补全弹出窗口中标记位置更改 :使用
和
图标指示建议的相关性是提高还是降低,因此该建议在建议列表中上移或下移。
在补全弹出窗口中标记最相关的条目 :使用
图标指示列表中最合适的建议。
启用这些图标后,建议列表将如下所示,图标会标记重新排序的项和最相关的项。

配置代码补全设置
要配置代码补全选项,请转到 编辑器 | 常规 | 代码补全 设置页面  Ctrl+Alt+S。
您可以选择以下设置:
项 | 描述 | |
|---|---|---|
区分大小写 | 如果希望在补全建议中考虑字母大小写,请选择此项。 选择仅匹配首字母的大小写,还是匹配所有字母的大小写。 | |
自动插入单个建议到 | 当基本补全和智能类型匹配补全仅有一个建议时,自动完成代码。 | |
按字母顺序对建议排序 | 如果希望按字母顺序而非相关性对建议列表中的条目进行排序,请选择此项。 您可以随时在建议列表中点击 | |
输入时显示建议 | 如果希望在无需显式调用补全的情况下自动显示建议列表,请选择此项。 此选项默认启用。 | |
通过按空格、点或其他上下文相关键插入选定建议 | 如果希望通过键入取决于语言、您的上下文等的特定按键来插入所选建议,请选择此项。 | |
以下时间后显示文档弹出窗口 | 自动为建议列表中的每一项 显示弹出窗口 ,其中包含当前在查找列表中高亮显示的类、方法或字段的文档。 当此选项被禁用时,按 Ctrl+Q 显示元素的文档。 在右侧的字段中,指定显示弹出窗口前的延迟(毫秒)。 | |
适用时自动插入圆括号 | 如果启用此选项,PyCharm 会在您完成函数/方法时自动插入一对左、右括号。 清除复选框以禁止自动插入括号。 如果您使用左括号 若要使用左括号 有关详细信息,请参阅 使用特定按键插入建议。 | |
HTML | ||
在 HTML 文本中键入时启用标签名代码补全的自动弹出 | 在 HTML 上下文中,默认情况下,即使您输入不带左尖括号的纯文本,PyCharm 也会显示补全建议。 清除复选框以关闭自动弹出。 | |
机器学习辅助补全 | ||
基于机器学习对补全建议排序 | 如果您希望使用机器学习模型将最合适的条目在建议列表中排在更靠前的位置,请选择此选项。 选择您希望启用基于机器学习建议的语言。 | |
在补全弹出窗口中标记位置更改 | 使用 | |
在补全弹出窗口中标记最相关的条目 | 使用 | |
Python | ||
在基本补全中建议可导入的类、函数和变量 | 默认情况下,PyCharm 会建议导入顶层类、函数和变量。 清除该复选框以关闭这些建议。 您仍可通过调用基本代码补全两次来手动触发它们。 | |
JavaScript | ||
仅基于类型的补全 | 默认情况下,PyCharm 会不考虑符号类型提供补全建议。 采用这种方式,在复杂情况下,列表会显示多个补全变体。 为使补全更精确,请选择此选项。 补全列表将高度依赖于 PyCharm 的推断。 因此,在推断不佳的情况下,列表可能为空。 | |
对可空类型建议带可选链的项 | 默认情况下,PyCharm 会对带有 可选链运算符 (?) 的符号提供补全建议。 清除此复选框以禁止此行为。 | |
在用于重写的补全中展开方法体 | 默认情况下,当您要重写父类或接口中的方法,并从补全建议列表中选择此方法时,PyCharm 会自动添加参数,生成对 清除此复选框以在补全期间禁止为重写自动生成方法体。 | |
名称补全 |
| |
参数信息 | ||
显示参数信息弹出窗口(毫秒) | 选中此复选框可在编辑器中键入左括号,或从建议列表中选择方法时,让 PyCharm 自动显示包含所有可用方法签名的弹出窗口。 在右侧的文本字段中,指定弹出窗口应出现前的延迟(毫秒)。 如果未选中此复选框,请使用 Ctrl+P 显示参数信息。 | |
显示完整的方法签名 | 如果选中此复选框,参数信息将显示完整签名,包括方法名称和返回类型。 | |
SQL | ||
从以下位置建议对象 | 选择建议对象的来源:
![]() ![]() ![]() | |
使用以下内容限定对象 | 选择何时使用数据库、架构、表与视图以及表与视图的别名限定对象。
![]() ![]() | |
在以下位置限定对象 | 选择在给定情形下何时限定对象。
![]() ![]() | |
在JOIN 补全中使用别名 | 在 ![]() | |
反转自动生成的ON 子句中操作数的顺序 | 切换 ![]() | |
根据名称匹配建议非严格外键 | 为 在 调试虚拟外键规则 中了解此选项的调试规则的更多信息。 ![]() ![]() | |
在补全表名时自动添加别名 | 为表名创建别名。 ![]() | |
在表名之后的补全中建议别名 | 当您使用代码补全(Ctrl+Space )时,建议表名的别名。 ![]() | |
自定义别名(表) | 您可以添加表名以及您希望用于该表的别名。 要添加表与别名对,请点击 添加别名 按钮( | |
补全技巧与提示
通过输入代码编号自动完成 HTTP 常量
指定导入的包名(例如
http)后,您可以键入404将其自动完成为http.StatusNotFound。
缩小建议列表范围
通过键入单词的任意部分(甚至是中间位置的字符),或在点分隔符 . 之后调用代码补全,缩小建议列表范围。
PyCharm 会显示包含您输入字符的建议,无论其位置如何。 因此无需使用通配符。

对于 CamelCase 或 snake_case 名称,只需键入首字母。 PyCharm 会自动识别并匹配这些首字母。
查看参考
查看代码层次结构
从建议列表中选中某个条目后,您可以查看代码层次结构:
Ctrl+H :查看类型层次结构
Ctrl+Shift+H :查看方法层次结构。
疑难解答
如果代码补全不起作用,可能是由于以下原因之一:
省电模式 已开启()。 启用后会通过停用后台操作(包括错误高亮、即时检查和代码补全)来降低笔记本电脑的电量消耗。
您的文件不在内容根中,因此无法获得代码补全所需的类定义和资源。
有关详细信息,请参阅 配置项目结构。
包含您希望在补全建议列表中出现的类和函数的文件被标记为纯文本文件。
包含您希望在补全建议列表中出现的函数的外部库未被 添加为依赖项或全局库。
如果收集补全选项耗时过长,代码补全弹出窗口可能不会自动出现。 例如,计算机正忙于执行其他任务。 在这种情况下,您仍可通过 Ctrl+Space 手动激活补全弹出窗口。














