PyCharm 2025.2 Help

代码质量辅助提示与技巧,或如何让您的代码看起来更漂亮?

本教程的内容

本教程旨在通过使用 PyCharm 的代码智能功能,逐步引导您在 Python 项目中创建源代码。 您将看到 PyCharm 如何帮助保持您的源代码完美无缺,包括正确的缩进、空格、导入等。 ——实际上,您会发现 PyCharm 本身就是一个代码质量工具。

Python 编程不在本教程的范围内。 有关 Python 语言的更多信息,请参阅 官方网站

在开始之前

确保:

  • 您使用的是 PyCharm 5.0 或更高版本。 如果您尚未拥有 PyCharm,请从 此页面下载。 要安装 PyCharm,请根据您的平台遵循相关说明。

  • 您已创建一个 Python 项目(文件|新建项目...)。 有关更多信息,请参阅 产品文档

  • 您已创建两个目录 源代码 test_dir 文件|新建Alt+Insert)。

  • 您已将 Python 文件添加到项目的 源代码 test_dir 目录中(文件|新建Alt+Insert)。 有关创建文件的更多信息,请参阅 填充项目 部分。

突出显示代码样式违规

创建一个新的 Python 文件 src/Solver.py Alt+Insert。 创建的文件会立即打开以供编辑。 默认情况下,该文件没有内容——这是因为文件 Solver.py 是由 文件模板创建的(对于 Python 文件来说),其中没有任何内容。

接下来,开始键入关键字 class。 当您刚开始键入时,PyCharm 会立即显示建议列表以完成您的代码:

代码辅助提示

红色曲线标记了下一个预期的条目——在这种情况下,这是预期的标识符。 输入类名 Solver。 红色曲线移动到类名之后。 如果您将鼠标悬停在此曲线上,您会看到错误描述(“:”预期)。 此外,请注意右侧边栏中的红色错误条纹——它也标记了相同的错误:

“预期的冒号”提示

输入冒号,并按 Enter。 根据 Python 代码样式 ,下一条语句是缩进的。 如果您不小心在 Enter 后按下空格键,您将因此违反代码样式设置。

调整 PEP 8 检查

转到 设置|编辑器 ,并在 检查页面上,键入 PEP 8 以查找所有与 PEP 8 相关的检查。 默认情况下,PEP 8 编码样式违规不会被突出显示,而 PEP 8 命名约定违规只是弱警告,因此不可见。

因此,首先,让我们提高它们的重要性。 从严重性下拉列表中选择 警告

严重性更改

应用更改并关闭对话框。 现在让我们返回到我们的源代码。

跟踪 PEP 8 规则

当您键入下一条语句时,例如 def demo(self,a,b,c): ,PyCharm 将显示来自 PEP 8 检查的消息:

PEP 8 检查

因此,正如您所见,PyCharm 支持 PEP 8 作为官方的 Python 样式指南。 如果您查看检查列表(Ctrl+Alt+S - 检查 ),您会看到 PyCharm 在您的代码上启动了 pep8.py 工具,并指出了代码样式违规。

代码检查及其设置

更仔细地查看 检查页面。 如果您刚打开此页面,您会参考 默认检查配置文件及其默认设置:这意味着检查适用于当前项目的所有源文件。

让我们尝试为两个不同的 范围自定义此配置文件:

  • 测试范围内,拼写错误应标记为拼写错误(绿色)。

  • 生产范围内,拼写错误应标记为错误(红色)。

创建范围

首先,让我们定义这两个范围。 为此,请点击主工具栏上的 ,在 设置 对话框中展开节点 外观与行为 ,打开页面 作用域。 然后点击 并选择范围类型 局部

添加新范围 对话框中,输入范围名称(测试),然后在项目树中选择要包含在测试范围内的目录, test_dir 。 当您包含目录时, Pattern 字段会自动填充:

创建范围

重复此过程以创建生产范围。

使用这些范围创建检查配置文件

接下来,让我们 创建默认配置文件的副本。 为此,请转到 设置|编辑器|检查 ,点击 ,并在下拉列表中选择 复制到项目…

为其指定一个新名称,例如 MyProjectProfile。 此新配置文件是默认配置文件的副本,并具有相同的检查集。

复制配置文件

选择此新配置文件后,让我们找到 拼写检查 并更改它。

点击 在所有范围中 按钮,并从列表中选择 测试 范围。 对 生产 范围重复相同操作。

为范围设置检查

测试 范围内,检查严重性保持不变(拼写错误),然而,在 生产 范围内,我们将从严重性列表中选择 错误

更改检查严重性

注意检查的颜色代码。 如果未更改,它们显示为黑色。 如果是蓝色,则表示它们已被更改。

应用更改并关闭对话框。

因此,修改后的检查配置文件已准备就绪。 接下来,让我们根据此配置文件检查代码。 为此,请转到主菜单中的 代码 | 检查代码 ,并在对话框中选择所需的配置文件和范围:

根据范围检查代码

执行两次——针对测试和生产范围(如果您希望保留检查结果以供进一步检查和共享,可以 导出它们)。 查看结果:

检查结果

突出显示错误

除了编码样式违规外,PyCharm 还会根据所选配置文件突出显示其他错误。

例如,如果您的检查配置文件包含 Python 检查 未解析的引用 ,并且您使用了尚未导入的符号,PyCharm 会下划线未解析的引用并建议添加导入语句:

导入建议

生成源代码

PyCharm 提供了许多自动生成代码的可能性。 您可以在 产品文档中探索自动生成功能。 让我们探索主要的代码生成过程。 为此,只需删除文件 Solver.py 的所有内容,然后从头开始。

首先,创建一个类的实例:

创建类的实例

接下来,按 Alt+Enter 并选择意图操作 创建类 'Solver'

用于创建类的意图操作

PyCharm 已经生成了一个类的框架:

已创建的类

接下来,让我们为类实例添加一个方法。 为此,在类实例后输入一个点,然后输入方法名称。 此方法尚不存在,PyCharm 建议创建一个:

在类中创建方法

让我们做一些手动工作——输入源代码。 当涉及到计算判别式时,我们必须提取平方根。 库 math 中有一个专用函数 sqrt ,但尚未导入。 让我们无论如何输入它,看看 PyCharm 如何处理它。 按 Alt+Enter 并选择 导入 'math'

导入建议

因此,我们得到了如下的源代码:

import math class Solver(): def demo(self,a,b,c): d = b ** 2 - 4 * a * c disc = math.sqrt(d) root1 = (- b + disc) / (2 * a) root2 = (- b - disc) / (2 * a) print (root1, root2) return root1, root2

然而,它缺乏一些重要的分析。 我们希望分析被开方数 d。 如果它是零或正数,则会计算判别式和方程的根;当被开方数为负数时,让我们抛出一个异常。

让我们用 if 构造包围一段代码块。 选择要完成的语句,当 d 为非负时,按 Ctrl+Alt+T (或从主菜单中选择 代码 | 包围):

包围代码

从建议列表中选择 if 选项。 如您所见,PyCharm 自动添加了 if True: 并缩进了所选行:

已添加包围

我们对布尔表达式完全不感兴趣,因此让我们将选定的 True 更改为 d >= 0。 接下来,将光标放在最后一行的末尾,然后按 Enter。 光标停留在下一行,与 if 语句具有相同的缩进,输入 else: ,并查看 PyCharm 报告预期的缩进:

应缩进

当您再次按 Enter 时,光标停留在缩进位置。 在这里,您可以使用 PyCharm 强大的自动代码补全功能输入异常表达式:

完成代码

重新格式化代码

让我们再次查看我们的 Solver.py 文件。 其右侧边栏显示黄色条纹。 当您将鼠标悬停在条纹上时,PyCharm 显示代码中相应问题的描述:

警告

它们只是警告,不会影响结果。 然而,PyCharm 提供了一种无需太多麻烦即可修复所有问题的方法。 这就是 代码重新格式化功能。 让我们尝试更改整个文件的格式。 为此,按 Ctrl+Alt+L (或从主菜单中选择 代码 | 格式化代码):

代码重新格式化完成

现在查看代码——与 PEP 8 相关的缺陷都消失了。

请注意,您可以自行定义格式化规则。 为此,请打开 代码样式设置 ,选择语言(在本例中为 Python),并进行必要的更改:

重新格式化代码设置

添加文档注释

格式化现在已修复,但仍然有一些条纹。 不可避免的黄色灯泡显示了添加文档字符串注释的可能性:

插入文档字符串

选择此建议,您会看到为某个参数添加的文档字符串注释:

已添加文档字符串

请注意,您必须在 智能键设置:Python 页面的编辑器设置中选择复选框 在文档注释存根中插入类型占位符

插入类型占位符设置

有几种文档字符串格式,文档注释是按照您在 Python 集成工具页面上选择的格式创建的。

类型提示

文档注释可用于定义参数、返回值或局部变量的预期类型。 为什么我们需要这些? 例如,我们希望控制传递给 demo() 方法的参数类型。 为此,让我们将相应的信息添加到文档注释中(注意文档注释中的代码补全功能):

文档字符串补全

接下来,当您查看方法调用时,您会看到错误的参数被 PyCharm 的检查 类型检查器 高亮显示:

类型检查器
最后修改日期: 2025年 9月 26日