Repolode
adamchainz

adamchainz/flake8-comprehensions

一个 flake8 插件,用于检查列表、集合、字典推导式及内置函数调用中的多余或低效写法。

Star
466
Fork
25
未关闭 Issue
11
最近提交
3天前

这是什么?

flake8-comprehensions 是 Python 代码检查工具 flake8 的一个插件,用于发现冗余或可以更直接写法的推导式、生成器表达式,以及 list()、set()、dict()、tuple() 等调用。例如在生成器外多包一层 list(),或在字典字面量外调用 dict(),都会被标出。

每条检查对应一个 C4 系列规则编号,例如 C400 针对多余的生成器,C419 针对会阻止短路求值的 any()/all() 列表推导式。如果项目自定义了 flake8 的 select 设置,需要加上 C4 前缀才能启用。插件支持 Python 3.11 及以上版本,通过 pip 安装。

核心功能

  • 01标记对生成器、推导式和字面量多余包裹的 list()、set()、dict()、tuple() 调用。
  • 02检测会阻止短路求值的 any()/all() 列表推导式。
  • 03对所有值相同的字典推导式,建议改用 dict.fromkeys()。
  • 04建议将基于 lambda 的 map() 调用改写为推导式或生成器表达式。
  • 05作为 flake8 插件运行,未自定义 select 时默认启用。

适用场景

  • 在已使用 flake8 的 CI 流程中保持 Python 代码整洁。
  • 重构时检查不必要的中间列表或重复类型转换。
  • 通过自动化代码检查向团队推广更地道的推导式写法。

快速上手

  1. 1

    使用 pip 安装该插件

    python -m pip install flake8-comprehensions
  2. 2

    如果你设置了 Flake8 的 select 选项,请在其中加入 C4 前缀;否则插件默认启用

使用前须知

  • 需要 Python 3.11 至 3.15。

收录于专题

标签

常见问题

flake8-comprehensions 是什么?
一个 flake8 插件,用于检查列表、集合、字典推导式及内置函数调用中的多余或低效写法。 flake8-comprehensions 是 Python 代码检查工具 flake8 的一个插件,用于发现冗余或可以更直接写法的推导式、生成器表达式,以及 list()、set()、dict()、tuple() 等调用。例如在生成器外多包一层 list(),或在字典字面量外调用 dict(),都会被标出。
flake8-comprehensions 可以免费使用吗?用的什么许可证?
flake8-comprehensions 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
flake8-comprehensions 还在维护吗?
活跃维护中。flake8-comprehensions 最近一次提交是在 2026年11月4日。
flake8-comprehensions 适合用来做什么?
在已使用 flake8 的 CI 流程中保持 Python 代码整洁。 重构时检查不必要的中间列表或重复类型转换。 通过自动化代码检查向团队推广更地道的推导式写法。
flake8-comprehensions 怎么安装和运行?
使用 pip 安装该插件: python -m pip install flake8-comprehensions 如果你设置了 Flake8 的 select 选项,请在其中加入 C4 前缀;否则插件默认启用
在哪里获取 flake8-comprehensions?
源代码和安装说明在 GitHub 上:https://github.com/adamchainz/flake8-comprehensions

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目