CodeQL 文档

常量比较

ID: py/comparison-of-constants
Kind: problem
Security severity: 
Severity: warning
Precision: very-high
Tags:
   - maintainability
   - useless-code
   - external/cwe/cwe-570
   - external/cwe/cwe-571
Query suites:
   - python-security-and-quality.qls

单击以查看 CodeQL 仓库中的查询

当比较两个常量时,通常表明存在错误,因为比较的布尔值将始终相同。在非常旧的代码中,这可能用于初始化 TrueFalse

建议

将值与其自身进行比较从来都不是好的做法。如果确实需要常量行为,请使用布尔文字 TrueFalse,而不是以模糊的方式将其编码为 1 == 1 或类似的代码。如果存在错误,请确定所需的行为并进行更正。

示例

在此示例中,旧代码使用 1==1 初始化 __builtins__.True。自 2003 年以来发布的所有 Python 版本中,此代码已不再必要,可以删除。


#Interoperate with very old versions of Python (pre 2.3)
try:
    True
except NameError:
    __builtins__.True = 1==1

参考资料

  • ©GitHub, Inc.
  • 条款
  • 隐私