跳到内容

true-false-comparison (E712)

源自 pycodestyle linter。

修复总是可用的。

作用

检查与布尔字面量的相等性比较。

为什么这不好?

PEP 8 建议不要使用相等运算符 ==!= 将值与 TrueFalse 进行比较。

而是使用 if cond:if not cond: 来检查真值。

如果您打算检查一个值是否为布尔字面量 TrueFalse,请考虑使用 isis not 来检查标识而不是相等性。

示例

if foo == True:
    ...

if bar == False:
    ...

建议改为

if foo:
    ...

if not bar:
    ...

修复安全性

此规则的修复被标记为不安全,因为它在使用覆盖 ==/__eq__!=/__ne__ 运算符的库时可能会改变运行时行为。 在这些情况下,is/is not 可能不等同于 ==/!=。 更多信息,请参阅 此问题