Repolode
PyCQA

PyCQA/flake8-bugbear

Flake8 插件,用于发现 pyflakes 和 pycodestyle 不检查的潜在错误与设计问题。

Star
1,126
Fork
134
未关闭 Issue
40
最近提交
2小时前

这是什么?

flake8-bugbear 是 Python 代码检查工具 Flake8 的一个插件,用于发现可能的 bug 和设计问题。它覆盖的检查包括裸 except 子句、可变对象作为参数默认值、参数默认值中调用函数、循环变量覆盖被遍历的可迭代对象,以及循环中的延迟绑定闭包等。

这些规则带有较强的主观性,因此没有放进 pyflakes 和 pycodestyle 的标准检查中,而是作为独立插件提供。每条警告都有以 B 开头的编码,其中 B9xx 系列的可选检查默认关闭,需要通过 extend-select 手动启用。可以通过 extend-immutable-calls、classmethod-decorators 等配置项调整检查行为。

安装只需通过 pip 执行一条命令,之后 Flake8 会自动加载该插件。

核心功能

  • 01检测裸 except 子句,并建议捕获更具体的异常。
  • 02标记可变对象作为参数默认值以及默认值中的函数调用。
  • 03提示未使用的循环变量,以及覆盖被遍历对象的循环变量。
  • 04捕获常见错误,如 assert False、无用表达式、以常量属性名调用 getattr 等。
  • 05提供默认关闭、需通过配置启用的主观性 B9xx 检查。

适用场景

  • 在已使用 Flake8 做持续集成检查的 Python 项目中加入偏重缺陷检测的规则。
  • 在代码评审前发现可变默认参数和延迟绑定闭包之类的错误。
  • 在团队代码库中统一更严格的异常处理规范。

快速上手

  1. 1

    使用 pip 从 PyPI 安装插件

    pip install flake8-bugbear
  2. 2

    检查 flake8 是否已加载该插件

    flake8 --version

使用前须知

  • 它只能作为 flake8 的插件使用,因此需要先安装 flake8。
  • 其中一些检查带有较强的个人偏好,并没有 PEP 或标准作为依据。

收录于专题

标签

常见问题

flake8-bugbear 是什么?
Flake8 插件,用于发现 pyflakes 和 pycodestyle 不检查的潜在错误与设计问题。 flake8-bugbear 是 Python 代码检查工具 Flake8 的一个插件,用于发现可能的 bug 和设计问题。它覆盖的检查包括裸 except 子句、可变对象作为参数默认值、参数默认值中调用函数、循环变量覆盖被遍历的可迭代对象,以及循环中的延迟绑定闭包等。
flake8-bugbear 可以免费使用吗?用的什么许可证?
flake8-bugbear 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
flake8-bugbear 还在维护吗?
活跃维护中。flake8-bugbear 最近一次提交是在 2026年11月7日。
flake8-bugbear 适合用来做什么?
在已使用 Flake8 做持续集成检查的 Python 项目中加入偏重缺陷检测的规则。 在代码评审前发现可变默认参数和延迟绑定闭包之类的错误。 在团队代码库中统一更严格的异常处理规范。
flake8-bugbear 怎么安装和运行?
使用 pip 从 PyPI 安装插件: pip install flake8-bugbear 检查 flake8 是否已加载该插件: flake8 --version
在哪里获取 flake8-bugbear?
源代码和安装说明在 GitHub 上:https://github.com/PyCQA/flake8-bugbear

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

相关项目