CodeQL 文档

可疑的未使用循环迭代变量

ID: py/unused-loop-variable
Kind: problem
Security severity: 
Severity: error
Precision: high
Tags:
   - maintainability
   - correctness
Query suites:
   - python-security-and-quality.qls

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

循环迭代变量未在循环体中使用,并且循环没有计算序列中项目的数量。这很可疑,因为很少有理由迭代一个序列而不使用其内容。不使用循环变量通常表明逻辑错误或拼写错误。

建议

仔细检查循环变量是否不应该使用。如果变量确实没有被使用,并且代码是正确的,则将变量重命名为 _unused,以向代码阅读者表明它是有意未使用的。

示例

在这个示例中,for 循环迭代变量 x 从未使用过。似乎原始的 test 函数用于测试 TypeA,后来被修改为也测试 TypeB


#
def test():
    for t in [TypeA, TypeB]:
        x = TypeA()
        run_test(x)

x = TypeA()x = t() 的更改很可能被遗忘了。修改后的版本如下所示。


#
def test():
    for t in [TypeA, TypeB]:
        x = t
        run_test(x)

参考

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