跳到内容

useless-contextlib-suppress (B022)

源自 flake8-bugbear linter。

作用

检查不带参数的 contextlib.suppress

为什么这不好?

contextlib.suppress 是一个上下文管理器,用于抑制异常。它接受异常作为参数,用于抑制封闭块中的异常。如果没有指定异常,则上下文管理器不会抑制任何异常,因此是多余的。

考虑向 contextlib.suppress 调用添加异常,或完全删除上下文管理器。

示例

import contextlib

with contextlib.suppress():
    foo()

建议改为

import contextlib

with contextlib.suppress(Exception):
    foo()

参考