具有相同变量的嵌套循环¶
ID: py/nested-loops-with-same-variable
Kind: problem
Security severity:
Severity: recommendation
Precision: very-high
Tags:
- maintainability
- correctness
Query suites:
- python-security-and-quality.qls
在 Python 中,变量具有函数范围,这意味着如果两个变量在同一个范围内具有相同的名称,它们实际上是一个变量。因此,如果嵌套循环的目标变量具有相同的名称,它们实际上共享一个变量。这样的循环很难理解,因为内部循环将修改外部循环的目标变量;这可能是一个打字错误。
建议¶
仔细检查代码并检查可能的错误,特别是考虑如果内部或外部变量被重命名会发生什么。
示例¶
for var in range(3):
for var in range(3):
pass
print (var) # Prints 2 2 2 not 0 1 2 as might be expected