CodeQL 文档

具有相同变量的嵌套循环

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

点击查看 CodeQL 代码库中的查询

在 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

参考

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