CodeQL 文档

条件表达式或语句中的常量

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

点击查看 CodeQL 仓库中的查询

在条件语句中使用常量值作为测试会使语句毫无意义,因为无论其他任何因素如何,都只会执行一个分支。

建议

如果需要条件语句进行调试或类似操作,请使用变量代替。否则,删除条件语句和任何相关的死代码。

示例

在第一个示例中,if 语句将始终被执行,因此可以删除。但应保留语句的内容。

在第二个示例中,语句 l = 100 永远不会执行,因为 1 > 100 始终为假。但是,可能意图是 l > 100(将数字‘1’误读为字母‘l’),并且应该更正测试,而不是删除。

if True:
    print "True is true!"

def limit(l):
    if l < -100:
        l = -100
    if 1 > 100:
        l = 100
    return l

参考

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