跳到内容

useless-expression (B018)

源自 flake8-bugbear linter。

作用

检查无用表达式。

为什么这不好?

无用表达式对程序没有影响,通常是错误包含的。将无用表达式赋值给变量,或将其完全删除。

示例

1 + 1

建议改为

foo = 1 + 1

Notebook 行为

对于 Jupyter Notebooks,此规则不适用于单元格中的最后一个顶级表达式。 这是因为通常会有一个笔记本单元格以表达式结尾,这将导致评估的表达式的 repr 作为单元格的输出打印出来。

已知问题

此规则忽略通常用于其副作用的表达式类型,例如函数调用。

但是,如果需要看似无用的表达式(如属性访问)来触发副作用,请考虑将其分配给匿名变量,以表明返回值是有意忽略的。

例如,给定

with errors.ExceptionRaisedContext():
    obj.attribute

建议改为

with errors.ExceptionRaisedContext():
    _ = obj.attribute