当我们编写/运行一些程序时,我们经常会陷入困境或遇到错误。我们通常会上网寻求帮助并让我们的代码运行。但是我们如何理解互联网上发布的代码呢?这个问题的一些典型答案是文档字符串,即写在代码之上的文章......,这个时代最大的问题之一是理解对方的程序。如果代码中没有注释、文档字符串等解释性内容,情况会更糟。作为一名程序员,我们应该让我们的代码可读且易于理解。为了解决这个问题,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 已安装,您应该在屏幕上看到“要求已满足”。
与 Pylint 合作
考虑以下程序,它接受两个数字并打印它们的总和。
Python3
a = 1
b = 2
print(a + b)
现在将上面的程序保存在文件中gfg.py
打开命令提示符/终端并键入以下命令
pylint gfg.py
在 pylint 2.4.4 版本中,您将得到如下所示的报告。消息可能会根据版本而变化。 分数上面给出的代码是-10.0/10.0(非常低)。如果我们得到低分,并不意味着我们的代码是错误的。分数代表其他程序员可以理解您的代码的好坏程度。我们需要考虑报告中给出的建议来改进我们的代码。报告中的每个消息建议/点都将给出由 ID 及其含义组成的消息格式。每个 ID 以字母开头,其余部分将进行编号。每个字母表示消息对象的类型。一些消息对象是
S.No | 消息对象 | 扩张 | 解释 |
---|---|---|---|
1. | C | Convention | 当程序不遵循标准规则时会显示它。 |
2. | R | Refactor | 显示不良代码气味 |
3. | W | Warning | 它针对 python 特定问题显示 |
4. | E | Error | 当特定行执行导致出现错误时显示 |
5. | F | Fatal | 当 pylint 无法进一步处理该行时会显示它。 |
让我们讨论一些提高分数的技巧。
- ID C0326建议 bad-white 空格错误意味着我们需要在之间给出空格a和=象征。此规则适用于在标识符之后立即使用运算符的所有声明。
- ID C0304属于missing-new-line建议,这意味着我们必须在完成代码时添加一个空行。
- ID C0114属于missing-module-docstring建议,这意味着我们需要在顶部添加一个文档字符串,它指的是下面编写的程序的使用。
- ID C0103属于 invalid-name 建议,可以通过编写以大写字母开头的标识符来避免。但是,我们通常认为类名使用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 中的规则来永久修改它,我们将在以后的文章中讨论这一点。
相关用法
- Python PyTorch acos()用法及代码示例
- Python PyTorch asin()用法及代码示例
- Python PyTorch atan()用法及代码示例
- Python PyTorch cos()用法及代码示例
- Python PyTorch cosh()用法及代码示例
- Python PyTorch sin()用法及代码示例
- Python PyTorch sinh()用法及代码示例
- Python PyTorch tan()用法及代码示例
- Python PyTorch tanh()用法及代码示例
- Python PyTorch from_numpy()用法及代码示例
- Python Pytorch randn()用法及代码示例
- Python Pytorch permute()用法及代码示例
- Python PyTorch div()用法及代码示例
- Python PyTorch clamp()用法及代码示例
- Python PyTorch ceil()用法及代码示例
- Python PyTorch add()用法及代码示例
- Python PyTorch abs()用法及代码示例
- Python PyTorch exp()用法及代码示例
- Python PyTorch numel()用法及代码示例
- Python PyTorch is_storage()用法及代码示例
- Python PyTorch is_tensor()用法及代码示例
- Python PyTorch trunc()用法及代码示例
- Python PyTorch frac()用法及代码示例
- Python PyTorch log()用法及代码示例
- Python PyTorch fmod()用法及代码示例
注:本文由纯净天空筛选整理自avsadityavardhan大神的英文原创作品 Pylint module in Python。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。