可疑的未使用循环迭代变量¶
ID: py/unused-loop-variable
Kind: problem
Security severity:
Severity: error
Precision: high
Tags:
- maintainability
- correctness
Query suites:
- python-security-and-quality.qls
循环迭代变量未在循环体中使用,并且循环没有计算序列中项目的数量。这很可疑,因为很少有理由迭代一个序列而不使用其内容。不使用循环变量通常表明逻辑错误或拼写错误。
建议¶
仔细检查循环变量是否不应该使用。如果变量确实没有被使用,并且代码是正确的,则将变量重命名为 _
或 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)