一个 flake8 和 Pylama 插件,用于检查 Python 导入语句的分组与排序是否符合指定的风格规范。
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
使用 pip 从 PyPI 安装插件
pip install flake8-bugbear - 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 数据每日更新。
相关项目
27972PythonLGPL-3.0更新于 5天前
一个单文件的 Python 代码风格检查工具,依据 PEP 8 规范检查代码,只依赖标准库。
5166+2 本周763PythonOther维护活跃更新于 3天前
一个 Python 代码检查工具,将 PyFlakes、pycodestyle 和 McCabe 整合为单一命令。
3834+1 本周365PythonOther更新于 3天前
一款严格且观点鲜明的 flake8 插件,用于统一 Python 代码风格并标记复杂写法。
2944+3 本周438PythonMIT维护活跃更新于 5小时前
一个计算 Python 函数 McCabe 圈复杂度的工具,可作为 flake8 插件使用,用于发现过于复杂的代码。
68470PythonOther更新于 26天前
基于 flake8 的 Python 插件,用于检测不安全和不良的编码写法。
17818PythonBSD-3-Clause更新于 18天前