CodeQL 文档

在 for 循环中使用不可迭代对象

ID: py/non-iterable-in-for-loop
Kind: problem
Security severity: 
Severity: error
Precision: high
Tags:
   - reliability
   - correctness
   - types
Query suites:
   - python-security-and-quality.qls

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

for 语句旨在允许你迭代序列或其他可迭代对象的元素。如果在 for 语句 (for var in object:) 中使用不可迭代对象,则会引发 TypeError。

建议

由于此缺陷通常表示逻辑错误,因此无法给出解决此缺陷的通用方法。

示例

在此示例中,循环可能尝试迭代 None,它不是可迭代对象。程序员可能忘记在循环之前测试 None



def illegal_for_loop(seq = None):
    for x in seq:
        print (x)

参考

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