【PyCharm教程】PyCharm Code completion代码完成

基本完成
基本代码完成可帮助您完成可见范围内的类、方法和关键字的名称。当您调用代码完成时,PyCharm 会分析上下文并建议可从当前插入符号位置访问的选项(建议还包括Live templates)。
代码完成可用于自定义文件类型。但是,PyCharm 无法识别此类文件的结构,并且会建议选项,无论它们是否适合当前上下文。
基本完成也可用于非英语键盘布局。
如果将基本代码完成应用于字段、参数或变量声明的一部分,PyCharm 会根据项目类型建议可能的名称列表。
第二次调用Basic代码补全显示整个项目中的类、函数、模块和变量的名称,不考虑依赖关系。
调用基本完成
- 开始输入名称。
- 按Ctrl+Space或选择代码 | 代码完成 | 主菜单中的基本。
下图显示了以下情况的基本代码完成:
- 方法:
- 方法参数:
- 字典:
- Django 模板:
- Python 字符串文字中的文件路径补全:
- 如有必要,再按Ctrl+Space一次(或按Ctrl+Alt+Space)。
这显示了类、函数、模块和变量的名称。
类型匹配完成
智能类型匹配代码完成过滤建议列表并仅显示适用于当前上下文的类型。
调用类型匹配完成
- 智能类型匹配代码完成过滤建议列表并仅显示适用于当前上下文的类型。要调用类型匹配完成,请开始输入您的代码并按Ctrl+Shift+Space。或者,选择代码 | 代码完成 | 主菜单中的类型匹配。
语句完成
您可以使用语句完成创建语法正确的代码结构Ctrl+Shift+Enter。它插入了必要的语法元素,让您处于可以开始输入下一条语句的位置。
完成方法声明
- 开始输入方法声明并Ctrl+Shift+Enter在左括号后按。
PyCharm 使用强制参数自动完成方法声明self
。开始在 Python 类中键入方法声明,PyCharm 将self
在参数列表的左括号之后插入。此行为可在编辑器设置的Smart Keys页面中进行配置。
完成一个代码构造
- 开始输入代码结构并按Ctrl+Shift+Enter。
PyCharm 自动完成构造并添加所需的标点符号。插入符号放置在下一个编辑位置。
集合中的完整语句
- PyCharm 自动在多行集合文字中的换行符之前插入尾随逗号。在 dict 文字中,它在键和值之间插入冒号。按下Ctrl+Shift+Enter以调用语句完成:
请注意,由于某些不完整集合文字的语法存在语言歧义,冒号既不会插入到 dict 文字的第一个键之后,也不会插入到带括号的元组的第一项之后。
嬉皮完成
Hippie 补全是一个补全引擎,可以在可见范围内分析您的文本并根据当前上下文生成建议。它可以帮助您完成任何当前打开的文件中的任何单词。
将插入符号处的字符串扩展为现有单词
键入初始字符串并执行以下操作之一:
- 按Alt+/或选择代码 | 代码完成 | 循环展开单词以在插入符号之前搜索匹配的单词。
- 按Alt+Shift+/或选择代码 | 代码完成 | 循环展开单词(向后)以在插入符号之后和其他打开的文件中搜索匹配的单词。
出现第一个建议值,并且原型在源代码中突出显示。
- 接受建议,或按住Alt键并按住/直到找到所需的单词。
后缀代码完成
后缀代码完成可帮助您在编写代码时减少向后的插入符号跳转。您可以根据在点后键入的后缀、表达式的类型及其上下文,将已键入的表达式转换为不同的表达式。
启用和配置后缀补全
- 转到设置/首选项 | 编辑 | 一般 | 后缀补全并选中启用后缀补全复选框。
- 选择Tab、Space或Enter用于扩展后缀模板。
- 启用/禁用所选语言的特定后缀模板。
转换带有后缀的语句
键入一个表达式,然后在一个点后键入一个后缀,例如,
.if:
def f(a): a.if
if
初始表达式被一个语句包裹:
def f(a):
if a:
您可以在编辑器 |中禁用某些后缀补全模板。一般 | IDE设置的Postfix完成Ctrl+Alt+S页面。
您可以选择Tab、Space或Enter展开后缀模板。
您可以编辑预定义的后缀模板,例如,将长键替换为较短的键,或扩展适用的表达式类型列表。由于 PyCharm 的限制,您无法为 Python 创建任何自定义后缀模板。
后缀补全选项显示为基本补全建议列表的一部分。要查看适用于当前上下文的后缀补全的完整列表,请按Ctrl+J。
F弦补全
每当您在普通字符串文字中打开花括号时,PyCharm 都会提供与 f 字符串相同的补全建议。f
当您选择建议的选项之一时,IDE 通过添加缺少的前缀和右花括号自动将文字转换为 f 字符串。
模块名称完成时自动导入
当您在 Python 代码中引用任何模块成员或包并调用代码完成时,PyCharm 会自动添加导入语句。代码完成时的自动导入也适用于一些流行的包名称别名,例如np
fornumpy
或pd
for pandas
。
机器学习辅助代码完成
PyCharm 允许您根据其他用户在类似情况下做出的选择来确定完成建议的优先级。
ML 完成机制不添加任何新元素,而是对从代码中检索到的元素进行排序。数据不会暴露在任何地方;它是在本地收集的。
启用 ML 完成
- 按Ctrl+Alt+S打开 IDE 设置并选择Editor | 一般 | 代码完成。
- 在Machine Learning-Assisted Completion下,启用基于机器学习对完成建议进行排序选项,然后选择要使用 ML 完成的语言。
启用相关性标记
- 按Ctrl+Alt+S打开 IDE 设置并选择Editor | 一般 | 代码完成。
启用以下选项:
- 在完成弹出窗口中标记位置更改:使用
和
图标指示建议的相关性是增加还是减少,因此建议在建议列表中向上或向下移动。
- 在完成弹出窗口中标记最相关的项目:使用
图标指示列表中最合适的建议。
- 在完成弹出窗口中标记位置更改:使用
建议列表将如下所示,带有重新排序的图标和最相关的项目。
配置代码完成设置
要配置代码完成选项,请转到编辑器 | 一般 | IDE设置的代码完成Ctrl+Alt+S页面。
您可以选择以下设置:
物品 | 描述 |
---|---|
相符 | 选择是否要在完成建议时考虑字母大小写。选择是否要匹配第一个字母或所有字母的大小写。 |
自动插入单个建议 | 如果只有一个基本和/或智能类型匹配完成的建议,请选择是否要自动完成代码。 |
按字母顺序对建议进行排序 | 选择是否要按字母顺序对建议列表中的项目进行排序,而不是按相关性对它们进行排序。您可以随时通过单击 |
键入时显示建议 | 选择是否要自动调用建议列表,而不必显式调用完成。默认情况下启用此选项。 |
通过按空格、点或其他与上下文相关的键插入选定的建议 | 选择是否要通过键入取决于语言、上下文等的某些键来插入选定的建议。 |
显示文档弹出窗口 | 选择以自动为建议列表中的每个项目显示一个弹出窗口,其中包含当前在查找列表中突出显示的类、方法或字段的文档。在右侧的字段中,指定延迟(以毫秒为单位),之后应该会出现弹出窗口。 |
完成提示和技巧
缩小建议列表
- 您可以通过键入单词的任何部分(甚至是中间某处的字符)或在点分隔符后调用代码完成来缩小建议列表。PyCharm 将显示包含您在任何位置输入的字符的建议。
这使得通配符的使用变得不必要:
如果是CamelCase或snake_case名称,请仅键入首字母。PyCharm 自动识别并匹配首字母。
接受建议
您可以通过以下方式之一接受列表中的建议:
- 按Enter或双击列表项以将其插入到插入符号的左侧。
- 按Tab替换插入符号右侧的字符。
- 用于Ctrl+Shift+Enter使当前代码结构在语法上正确(平衡括号、添加缺少的大括号和分号,等等)。
您还可以使用特定键插入选定的完成建议:转到编辑器 | 一般 | IDE 设置的代码完成Ctrl+Alt+S页面并选择通过按空格、点或其他与上下文相关的键选项插入所选建议。这些键取决于语言、您的上下文等。
虽然此设置可以帮助您节省时间,但打开它可能会导致项目被意外插入。
查看参考
- 当您在建议列表中选择一个条目时,您可以通过按下来使用 定义:Ctrl+Shift+I
- 当您在建议列表中选择一个条目时,您可以通过按下来使用快速信息视图:Ctrl+Q
查看代码层次结构
从建议列表中选择条目后,您可以查看代码层次结构:
- Ctrl+H- 查看类型层次结构
- Ctrl+Shift+H- 查看方法层次结构。
故障排除
如果代码完成不起作用,这可能是由于以下原因之一:
- 省电模式已打开(文件|省电模式)。打开它可以消除后台操作,包括错误突出显示、动态检查和代码完成,从而最大限度地减少笔记本电脑的功耗。
- 您的文件不驻留在内容根目录中,因此它没有获得代码完成所需的类定义和资源。
- 包含您希望出现在完成建议列表中的类和函数的文件被标记为纯文本文件。
- 包含您希望出现在完成建议列表中的函数的外部库不会添加为依赖项或全局库。