Python从小白到高手实现系列六百八十八:Pylint

除了一些质量保证方面的度量之外,Pylint 还允许你检查给定的源代码是否遵循某种
命名约定。它的默认设置对应于PEP 8,Pylint 脚本会提供一份shell 报告输出。
要安装Pylint,你可以使用pip,代码如下:
$ pip install pylint
安装完成后,pylint 这个命令就可用了,可以在一个模块上运行,也可以利用通配符
在多个模块上运行。我们在Buildout 的bootstrap.py 脚本上试用这个命令,代码如下:
$ wget -O bootstrap.py https://bootstrap.pypa.io/bootstrap-buildout.py -q
$ pylint bootstrap.py
No config file found, using default configuration
************* Module bootstrap
C: 76, 0: Unnecessary parens after ‘print’ keyword (superfluous-parens)
C: 31, 0: Invalid constant name “tmpeggs” (invalid-name)
C: 33, 0: Invalid constant name “usage” (invalid-name)
C: 45, 0: Invalid constant name “parser” (invalid-name)
C: 74, 0: Invalid constant name “options” (invalid-name)
C: 74, 9: Invalid constant name “args” (invalid-name)
C: 84, 4: Import “from urllib.request import urlopen” should be placed at
the top of the module (wrong-import-position)

Global evaluation

Your code has been rated at 6.12/10
Pylint 的实际输出要更长一些,这里只截取了其中一部分。
注意,Pylint 可能会给出不好的评分或抱怨。例如,import 语句没有被模块本身的代
码使用,这在某些情况下是完全可以的(使其在命名空间中可用)。
如果一个库采用混合大小写为方法命名,那么对其调用可能也会降低评分。无论如何,
总体评价并不那么重要。Pylint 只是一个工具,指出可能的改进之处。
要想对Pylint 进行微调,第一件要做的事就是,使用-generate-rcfile 选项在项
目目录下创建一个.pylintrc 配置文件,如下所示:
$ pylint --generate-rcfile > .pylintrc
这个配置文件是自带说明的(self-documenting,每个选项都用注释说明),应该已经包
含所有可用的配置选项。
除了检查是否遵守某种任意的编码标准,Pylint 还可以给出有关整体代码质量的额外
信息,例如:
• 代码重复度量。
• 未使用的变量和导入。
• 缺失的函数、方法或类的文档字符串。
• 函数签名过长。
默认启用的可用检查列表非常长。重要的是要知道,有些规则是任意的,不能轻易应
用到所有代码库。要记住,一致性永远比遵守某种任意的标准更有价值。幸运的是,Pylint
是可调节的,所以如果你的团队使用一些与默认不同的命名和编码约定,你可以轻松配置
来检查与这些约定的一致性。