Python中的Pylint模块
在编写/运行某些程序时,我们经常会卡在中间或遇到错误。我们通常上网寻求帮助并让我们的代码运行。但是我们如何理解互联网上发布的代码呢?这个问题的一些典型答案是文档字符串,写在该代码之上的文章..,这个时代最大的问题之一是理解对方的程序。如果代码中没有注释、文档字符串等解释性内容,情况会更糟。作为程序员,我们应该使我们的代码可读和易懂。为了解决这个问题, Python提供了一个模块pylint 。本文简要介绍了pylint模块,并提供了在我的代码中获得高分的技巧。开始吧。 Pylint 是一个工具
- 列出执行该Python代码后出现的错误
- 执行编码标准并寻找代码异味
- 建议如何更新特定的块
- 提供有关代码复杂性的详细信息
Pylint 工具类似于pychecker 、 pyflakes 、 flake8和mypy 。
安装
要安装 pylint,请确保您的 PC 上安装了Python 。在您的 PC 上打开命令提示符(Windows)/终端(Linux)并键入以下命令
pip install pylint
要验证 pylint 安装,请键入以下命令
pylint --version
您应该看到 pylint “2.4.4” 版本。我们还可以通过重新安装 pylint 来验证安装。在这种情况下,如果 pylint 已经安装,您应该会在屏幕上看到Requirement 已经满足。
与皮林特合作
考虑以下程序,它接受两个数字并打印它们的总和。
Python3
a = 1
b = 2
print(a + b)
Python3
'''
This program adds two numbers and displays their results
'''
A = 1
B = 2
print('Sum of Numbers:', A + B)
现在将上述程序保存在文件gfg.py 中
打开命令提示符/终端并键入以下命令
pylint gfg.py
在 pylint 2.4.4 版本中,您将获得如下所示的报告。消息可能会因版本而异。 上面给出的代码的分数是 -10.0/10.0(非常低)。如果我们得到一个低分,这并不意味着我们的代码是错误的。分数表示您的代码对其他程序员的理解程度。我们需要通过考虑报告中给出的建议来改进我们的代码。报告中的每个消息建议/点都将使用由 ID 及其含义组成的消息格式。每个 ID 都以字母开头,其余的将被编号。每个字母表示消息对象的类型。一些消息对象是S.No Message Object Expansion Explanation 1. C Convention It is displayed when the program is not following the standard rules. 2. R Refactor It is displayed for bad code smell 3. W Warning It is displayed for python specific problems 4. E Error It is displayed when that particular line execution results some error 5. F Fatal It is displayed when pylint has no access to further process that line.
让我们讨论一些提高分数的技巧。
- ID C0326提示错误的空白错误意味着我们需要在a和=符号之间提供一个空白。此规则适用于在标识符之后立即使用运算符的所有声明。
- ID C0304属于缺少新行建议,这意味着我们必须在完成代码时添加一个空行。
- ID C0114属于缺少模块文档字符串的建议,这意味着我们需要在顶部添加一个文档字符串,它指的是使用下面编写的程序。
- ID C0103属于无效名称建议,可以通过编写以大写字母开头的标识符来避免。但是,我们通常认为类名使用 CamelCasing,即类名以大写字母开头。为了避免这个建议,我们将向 pylint 添加一个正则表达式,它实际上接受所有小写字母中的变量。我们将在进一步的示例中对此进行更多讨论。
代码的修改版本是:
Python3
'''
This program adds two numbers and displays their results
'''
A = 1
B = 2
print('Sum of Numbers:', A + B)
如果我们使用 pylint 运行上面的代码,我们将得到以下结果在这里,我们将分数从 -10.0 提高到了 10.0。那太棒了。但是,我的代码可以理解吗?答案是否定的。我们需要进行一些更改来指定 pylint 模块来对代码进行评分。
更改无效名称建议
如前所述,pylint 模块将默认使用大写命名约定。用于标识大写约定的正则表达式是 (([A-Z_][A-Z1-9_]*)|(__.*__))$。我们需要将我们的建议添加为接受以小写字母开头的标识符的正则表达式。为此,请打开命令提示符并执行以下语句。
pylint --const-rgx='[a-z\_][a-z0-9\_]{2, 30}$' filename.py
.这将避免使用大写约定。我们可以通过更改pylint –generate-rcfile中的规则来永久修改它,我们将在以后的文章中讨论。