本教程旨在逐步引导您使用 PyCharm 的代码智能功能在 Python 项目中创建源代码。您将看到 PyCharm 如何通过适当的缩进、空格、导入等帮助您的源代码保持完美状态 - 实际上,您会看到 PyCharm 本身就是一个代码质量工具。
Python 编程超出了本教程的范围。想要了解更多关于 Python 语言的信息,请参考官网。
确保:
创建一个新的 Python 文件src/Solver.pyAlt+Insert。创建的文件立即打开进行编辑。默认情况下,该文件没有内容——这是因为文件Solver.py是由一个文件模板创建的,该文件模板(在 Python 文件的情况下)不包含任何内容。
接下来,开始输入关键字class
。当您刚开始输入时,PyCharm 会立即显示建议列表以完成您的代码:
(有关详细信息,请参阅产品文档的代码完成页面。)
红色曲线标记下一个预期的条目 - 在这种情况下,这是预期的标识符。输入班级名称Solver
。红色曲线在类名之后移动。如果将鼠标指针悬停在此曲线上,您会看到错误描述(“预期冒号”)。另外,请注意右侧排水沟中的红色错误条纹 - 它也标记了相同的错误:
好的,输入冒号,然后按Enter。根据Python 代码风格,下一条语句是缩进的。如果碰巧在 之后按空格Enter,则会违反代码样式设置。
但是,默认情况下,这些违规行为只是微弱的警告,因此是不可见的。所以,首先,让我们提高它们的重要性。单击主工具栏,在“设置/首选项”对话框的“检查”页面上,键入 PEP8 以查找所有与 PEP8 相关的检查,然后从“严重性”下拉列表中选择“警告” :
应用更改并关闭对话框。现在让我们回到我们的源代码。
现在 PyCharm 展示了它最好的一面!它随时保护您的代码样式完整性。您立即注意到缩进的空格被突出显示,并且当您键入下一条语句时,例如,def demo(self,a,b,c):
PyCharm 将显示来自 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。请注意,当您包含目录时,模式字段会自动填写:
重复此过程以创建生产范围。
接下来,让我们创建默认配置文件的副本(尽管此配置文件是可编辑的......只是为了安全起见):
并给它一个新名称,例如 MyProjectProfile。此新配置文件是默认配置文件的副本,并具有相同的检查集。
选择这个新配置文件后,让我们找到拼写检查并进行更改。要查找拼写检查(我们之前已经做过),只需spel
在搜索区域中输入。
下一步是什么?单击In All Scopes按钮并从列表中选择测试范围;对生产范围重复相同的操作
在“测试”范围内,检查严重性保持原样(错字);但是,范围“生产”我们将从严重性列表中选择“错误”:
注意检查的颜色代码。如果未更改,它们将显示为黑色。如果它们是蓝色的,则表示它们已被更改。
应用更改并关闭对话框...
因此,修改后的检查配置文件已准备就绪。它的名字是Project Default (copy),它在测试和生产范围内的拼写检查有不同的设置。接下来,让我们根据这个配置文件检查代码。为此,请在主菜单上选择 ,然后在对话框中选择所需的配置文件和范围:
做两次 - 用于测试和生产范围(如果您想保留检查结果以供进一步检查和共享,您可以将它们导出)。探索结果:
除了编码风格违规外,PyCharm 还会突出显示其他错误,具体取决于所选配置文件。
例如,如果您的检查配置文件包含 Python 检查Unresolved references,并且您使用尚未导入的符号,PyCharm 会在未解决的引用下划线并建议添加 import 语句:
请参阅产品文档。
PyCharm 提供了许多自动生成代码的可能性。您可以在产品文档中探索自动生成功能。让我们探索主要的代码生成过程。为此,只需删除文件Solver.py的所有内容,然后从头开始。
首先,创建一个类的实例:
接下来,按下Alt+Enter并选择意图操作Create class 'Solver':
伟大的!PyCharm 删除了一个类:
接下来,让我们为类实例添加一个方法。为此,请在类实例后键入一个点,然后键入方法名称。此方法尚不存在,PyCharm 建议创建一个:
让我们做一些手工工作——输入源代码。在计算判别式时,我们必须提取平方根。sqrt
库中有一个专用函数math
,但尚未导入。好的,不管怎样,让我们输入它,看看 PyCharm 是如何处理它的。按下Alt+Enter并选择Import 'math':
所以,我们来到了这样的源代码:
但是,它缺乏一些重要的分析。我们想分析 radicand d
。如果为零或正,则将计算判别式和方程根;当 radicand 为负数时,让我们提出一个异常。PyCharm 将如何帮助完成这项任务?
if
让我们用构造包围一段代码。选择要完成的语句,whend
为非负数,然后按Ctrl+Alt+T(或在主菜单上选择
if
从建议列表中选择选项。如您所见,PyCharm 自动添加if True:
和缩进选定的行:
我们对布尔表达式根本不感兴趣,所以让我们将 selected 更改True
为d >= 0
。接下来,将插入符号放在最后一行的末尾,然后按Enter。插入符号位于下一行,缩进与if
语句相同;键入else: clause here
,并查看 PyCharm 报告有关预期缩进的信息:
当您Enter再次按下时,插入符号停留在缩进位置。在这里你可以输入异常表达式,使用 PyCharm 强大的自动代码完成功能:
让我们再看看我们的Solver.py文件。它的右侧排水沟显示黄色条纹。当您将鼠标指针悬停在条纹上时,PyCharm 会在代码中显示相应问题的描述:
好消息是它们只是警告,不会影响结果。坏消息是它们太多了,无法一一修复。是否可以不费吹灰之力地让源代码变得漂亮漂亮?
PyCharm 说 - 是的。这是代码重新格式化功能。因此,让我们尝试更改整个文件的格式。为此,请按Ctrl+Alt+L(或在主菜单上选择
现在看看代码——与 PEP8 相关的缺点都消失了。
请注意,您可以自己定义格式规则。为此,请打开代码样式设置,选择语言(在本例中为 Python),然后进行必要的更改:
好的,格式现在已修复,但仍有一些条纹。不可避免的黄色灯泡显示了添加文档字符串注释的可能性:
选择此建议并查看添加的某个参数的文档字符串注释:
请注意,您必须在编辑器设置的智能键 页面中选中复选框在文档注释字符串中插入类型占位符:
有多种文档字符串格式,文档注释以您在Python 集成工具页面中选择的格式创建。如果您愿意,可以将文档字符串格式更改为 Epytext 或纯文本。
文档注释可用于定义参数、返回值或局部变量的预期类型。为什么我们需要这一切?例如,我们希望控制传递给demo()
方法的参数类型。为此,让我们将相应的信息添加到文档注释中(顺便说一下,请注意文档注释中的代码完成!):
接下来,当您查看方法调用时,您会看到 PyCharm 的检查类型检查器突出显示了错误的参数:
在 PyCharm 文档中了解有关类型提示的更多信息。