代码质量辅助的技巧与提示,或者如何让您的代码看起来更漂亮?
本教程介绍的内容
本教程旨在引导您使用 PyCharm 的代码智能功能,在 Python 项目中一步步创建源代码。 您将看到 PyCharm 如何通过正确的缩进、空格、导入等,帮助保持您的源代码处于良好状态。 - 实际上,您会发现 PyCharm 本身就是一款代码质量工具。
本教程不涉及 Python 编程。 有关 Python 语言的更多信息,请参阅 官方网站。
开始之前
请确保:
高亮显示代码风格违规
创建一个新的 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 检查的消息:

由此可见,PyCharm 支持将 PEP 8 作为官方的 Python 风格指南。 如果您查看检查列表(Ctrl+Alt+S - 检查 ),您会看到 PyCharm 在您的代码上运行 pep8.py 工具,并精确定位代码风格违规。
代码检查及其设置
更仔细地查看 检查 页面。 如果您刚打开此页面,您使用的是具有默认设置的 默认检查配置文件 :这意味着检查将应用于当前项目的所有源文件。
让我们尝试为两个不同的 范围 自定义此配置文件:
在 Test 范围内,拼写错误应标记为拼写错误(绿色)。
在 Production 范围内,拼写错误应标记为错误(红色)。
创建范围
首先,定义这两个范围。 为此,请在主工具栏中点击 ,在 设置 对话框中展开节点 外观与行为 ,打开页面 范围。 然后点击
,选择范围类型 本地。
在 添加新范围 对话框中,输入范围名称(Test),然后在项目树中选择要包含到 Test 范围中的目录 test_dir 。 当您包含该目录时, 模式 字段会自动填充:

重复此过程以创建 Production 范围。
使用这些范围创建检查配置文件
接下来,让我们为默认检查配置文件 创建一个副本。 为此,转到 ,点击 ,并在下拉列表中选择 复制到项目...
为其指定一个新名称,例如 MyProjectProfile。 这个新配置文件是默认检查配置文件的副本,并具有相同的检查集。

选中新配置文件后,定位到 拼写检查 并进行更改。
点击 在所有范围 按钮,并从列表中选择 测试 范围。 对 生产 范围执行相同操作。

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

注意检查的颜色编码。 未更改时以黑色显示。 如果显示为蓝色,则表示已被更改。
应用更改并关闭对话框。
因此,修改后的检查配置文件已就绪。 接下来,让我们针对该配置文件检查代码。 为此,请在主菜单中转到 ,并在对话框中选择所需的配置文件和范围:

执行两次——针对 Test 和 Production 范围(如果您希望保留检查结果以便进一步查看和共享,可以 导出它们)。 探索结果:

高亮显示错误
除了代码风格违规之外,PyCharm 还会根据所选配置文件高亮显示其他错误。
例如,如果您的检查配置文件包含 Python 检查 未解析的引用 ,且您使用了尚未导入的符号,PyCharm 会对未解析引用加下划线,并建议添加 import 语句:

生成源代码
PyCharm 提供了大量自动生成代码的功能。 您可以在 产品文档中探索自动生成功能。 让我们探索主要的代码生成过程。 为此,只需删除文件 Solver.py 的所有内容,然后从头开始。
首先,创建一个类的实例:

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

PyCharm 已生成一个类的框架:

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

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

至此,我们得到如下源代码:
不过,它缺少一些重要的分析。 我们想要分析被开方数 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 的检查 类型检查器 高亮显示:
