CodeQL 文档

未使用的全局变量

ID: py/unused-global-variable
Kind: problem
Security severity: 
Severity: recommendation
Precision: high
Tags:
   - efficiency
   - useless-code
   - external/cwe/cwe-563
Query suites:
   - python-security-and-quality.qls

点击查看 CodeQL 仓库中的查询

定义了一个全局(模块级)变量(通过赋值),但从未使用过,也没有通过包含在 __all__ 列表中明确地公开。

有时需要一个未使用的变量。这些未使用的变量应该具有区别性的名称,以便代码的读者清楚地知道它们是故意不使用的。最常见的约定是将变量命名为 _ 或将变量名的开头加上 unused_unused

该查询接受以下名称,用于表示旨在不使用的变量

  • 任何完全由下划线组成的名称。

  • 任何包含 unused 的名称。

  • 名称 dummyempty

  • 任何形式为 __xxx__ 的“特殊”名称。例如 x, y = func() 中定义的变量被集体处理。如果它们都未使用,则会报告此问题。否则,它们都被视为已使用。

建议

如果该变量是为了文档目的或出于其他原因而故意不使用的,则更改其名称以指示它未被使用,否则删除该赋值(注意不要删除右侧,如果它有副作用)。

示例

在此示例中,random_no 变量从未被读取,但其赋值有副作用。因此,重要的是只删除第 9 行赋值的左侧。

import random

def write_random_to_file():
    no = random.randint(1, 10)
    with open("random.txt", "w") as file:
        file.write(str(no))
    return no

random_no = write_random_to_file()

参考

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