首页/开发/代码质量与评审速查/Pylint:检查与评分
规范与静态检查65 条

Pylint:检查与评分

Pylint 输出分类消息(C 约定 / R 重构 / W 警告 / E 错误 / F 致命)与 0-10 评分,支持按模块禁用与 --fail-under 门禁。

Pylint 是什么

Pylint 是 Python 的老牌检查工具:除了风格问题,它还做一部分逻辑与结构推断检查,输出按类别前缀分类,并给出 0 到 10 的评分。评分可以用参数变成门禁条件,配合按模块禁用,能在存量项目里逐步收紧标准。

基本信息

消息类别C 约定、R 重构、W 警告、E 错误、F 致命
编号形式类别字母加四位数字,例如 C0114
评分0 到 10,可用参数设为门禁
配置pylintrc 文件,或 pyproject 的 tool 段

典型使用场景

  • 存量项目首次引入:只启用一个消息子集,先跑绿再收紧
  • 关键模块加严:对核心目录启用更多检查
  • 检查命名与结构:类名、方法名、模块组织类问题
  • 排查可疑代码:分支过多、变量被重复定义之类的提示
  • CI 门禁的一部分:与格式化工具分工,各管一块

逐步引入的做法

  • 先只跑错误与致命两类,确保零错误
  • 按目录逐个加入约定类检查
  • 在配置里写明每条禁用规则的理由
  • 定期回看禁用清单,能删就删

常用命令

常用命令
pylint mypkg
pylint --disable=C0114,C0115 mypkg   # 关闭 docstring 相关提示
pylint --fail-under=9.0 mypkg        # 评分低于 9 时失败
pylint --output-format=json mypkg > pylint.json

消息类别速查

前缀含义处理建议
C约定,风格与命名类按团队规范取舍
R重构建议,结构类问题评估收益之后再做
W警告,可疑写法优先处理
E错误,很可能是缺陷必须处理
F致命,文件解析失败立即处理
Pylint 的默认规则偏主观:无论新项目还是存量代码,都建议从消息子集开始,否则提示会多到没人看。
在评审中的用法:把 Pylint 接进流水线并按目录逐步收紧,评审意见就可以集中在设计取舍上,而不是命名与格式。
把评分当硬指标:为了提分去写毫无信息量的 docstring,分数上去了可读性没有变化。

易错点

  • 把评分当硬指标:为提分写无意义的 docstring,指标好看但没有实际收益
  • 默认规则直接跑存量代码:数百条提示淹没有效信息,团队很快整体关闭
  • 禁用规则不写理由:后来人不敢启用,债务越积越多
  • 与格式化工具抢地盘:格式类检查重复执行,结论互相矛盾
  • 按目录收紧时不记录进度:哪些目录已达标没人知道,收紧计划半途而废

数据来源与参考

  • Pylint 官方文档(pylint.readthedocs.io)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌