配置 PyCharm 设置

本教程是关于什么的

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

Python 编程超出了本教程的范围。想要了解更多关于 Python 语言的信息,请参考官

在你开始之前

确保:

  • 您正在使用 PyCharm 5.0 或更高版本。如果您还没有 PyCharm,请从此页面下载。要安装 PyCharm,请按照说明进行操作,具体取决于您的平台。有关详细信息,请参阅产品文档

  • 您已经创建了一个 Python 项目(File|New Project...)。有关详细信息,请参阅产品文档

  • 您已经创建了两个目录srctest_dir ( File|NewAlt+Insert)。

  • 您已将 Python 文件添加到项目的srctest_dir目录(File|NewAlt+Insert)。要了解如何创建文件,请参阅填充项目部分。

突出代码样式违规

创建一个新的 Python 文件src/Solver.pyAlt+Insert。创建的文件立即打开进行编辑。默认情况下,该文件没有内容——这是因为文件Solver.py是由一个文件模板创建的,该文件模板(在 Python 文件的情况下)不包含任何内容。

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

py代码1

(有关详细信息,请参阅产品文档的代码完成页面。)

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

预期 Py 冒号

好的,输入冒号,然后按Enter。根据Python 代码风格,下一条语句是缩进的。如果碰巧在 之后按空格Enter,则会违反代码样式设置。

调整 PEP8 检查

但是,默认情况下,这些违规行为只是微弱的警告,因此是不可见的。所以,首先,让我们提高它们的重要性。单击图标常规设置主工具栏,在“设置/首选项”对话框的“检查”页面上,键入 PEP8 以查找所有与 PEP8 相关的检查,然后从“严重性”下拉列表中选择“警告” :

Py检查严重性

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

跟踪 PEP8 规则

现在 PyCharm 展示了它最好的一面!它随时保护您的代码样式完整性。您立即注意到缩进的空格被突出显示,并且当您键入下一条语句时,例如,def demo(self,a,b,c):PyCharm 将显示来自 PEP8 检查的消息:

py检查pep8

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

代码检查及其设置

顺便说一句,更仔细地查看检查。如果您刚刚打开此页面,您会看到带有默认设置的默认检查配置文件:这意味着检查适用于当前项目的所有来源。

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

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

  • 生产范围内,拼写错误应该被标记为错误(红色)——我们真的可以生成有错别字的代码吗?

这就是它的完成方式...

创建范围

首先,让我们定义两个范围。为此,请单击图标常规设置主工具栏上的 ,在Settings/Preferences对话框中展开节点Appearance and Behavior,打开页面Scopes。然后单击图标一般添加并选择范围类型Local

Add New Scope对话框中,键入范围名称 (Test),然后在项目树中,选择要包含在 Test 范围中的目录 test_dir。请注意,当您包含目录时,模式字段会自动填写:

Py范围测试

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

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

接下来,让我们创建默认配置文件的副本(尽管此配置文件是可编辑的......只是为了安全起见):

Py 复制配置文件

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

选择这个新配置文件后,让我们找到拼写检查并进行更改。要查找拼写检查(我们之前已经做过),只需spel在搜索区域中输入。

下一步是什么?单击In All Scopes按钮并从列表中选择测试范围;对生产范围重复相同的操作

Py 拼写测试范围

在“测试”范围内,检查严重性保持原样(错字);但是,范围“生产”我们将从严重性列表中选择“错误”:

py spel 生产范围

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

应用更改并关闭对话框...

因此,修改后的检查配置文件已准备就绪。它的名字是Project Default (copy),它在测试和生产范围内的拼写检查有不同的设置。接下来,让我们根据这个配置文件检查代码。为此,请在主菜单上选择Code|Inspect Code,然后在对话框中选择所需的配置文件和范围:

Py 根据范围检查代码

做两次 - 用于测试和生产范围(如果您想保留检查结果以供进一步检查和共享,您可以将它们导出)。探索结果:

Py 拼写检查

突出显示错误

除了编码风格违规外,PyCharm 还会突出显示其他错误,具体取决于所选配置文件。

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

py导入

请参阅产品文档

生成源代码

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

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

Py 创建一个类的实例

接下来,按下Alt+Enter并选择意图操作Create class 'Solver'

Py 创建类意图动作

伟大的!PyCharm 删除了一个类:

Py 创建类存根

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

Py在类中创建方法

让我们做一些手工工作——输入源代码。在计算判别式时,我们必须提取平方根。sqrt库中有一个专用函数math,但尚未导入。好的,不管怎样,让我们​​输入它,看看 PyCharm 是如何处理它的。按下Alt+Enter并选择Import 'math'

py 创建导入

所以,我们来到了这样的源代码:

导入数学类 Solver(object): 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

但是,它缺乏一些重要的分析。我们想分析 radicand d。如果为零或正,则将计算判别式和方程根;当 radicand 为负数时,让我们提出一个异常。PyCharm 将如何帮助完成这项任务?

if让我们用构造包围一段代码。选择要完成的语句,whend为非负数,然后按Ctrl+Alt+T(或在主菜单上选择Code | Surround with ):

py环绕代码

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

添加了 Py 环绕

我们对布尔表达式根本不感兴趣,所以让我们将 selected 更改Trued >= 0。接下来,将插入符号放在最后一行的末尾,然后按Enter。插入符号位于下一行,缩进与if语句相同;键入else: clause here,并查看 PyCharm 报告有关预期缩进的信息:

Py else缩进预期

当您Enter再次按下时,插入符号停留在缩进位置。在这里你可以输入异常表达式,使用 PyCharm 强大的自动代码完成功能:

Py完成代码

重新格式化代码

让我们再看看我们的Solver.py文件。它的右侧排水沟显示黄色条纹。当您将鼠标指针悬停在条纹上时,PyCharm 会在代码中显示相应问题的描述:

Py 警告

好消息是它们只是警告,不会影响结果。坏消息是它们太多了,无法一一修复。是否可以不费吹灰之力地让源代码变得漂亮漂亮?

PyCharm 说 - 是的。这是代码重新格式化功能。因此,让我们尝试更改整个文件的格式。为此,请按Ctrl+Alt+L(或在主菜单上选择代码 | 重新格式化代码):

Py 重新格式化代码完成

现在看看代码——与 PEP8 相关的缺点都消失了。

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

Py 重新格式化代码设置

添加文档注释

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

Py 意图文档字符串

选择此建议并查看添加的某个参数的文档字符串注释:

Py 意图文档字符串已完成

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

py插入类型占位符设置

有多种文档字符串格式,文档注释以您在Python 集成工具页面中选择的格式创建。如果您愿意,可以将文档字符串格式更改为 Epytext 或纯文本。

类型提示

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

Py 文档字符串完成

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

Py 类型检查器

在 PyCharm 文档中了解有关类型提示的更多信息。

最后修改:2021 年 12 月 9 日