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,分数上去了可读性没有变化。