未使用的局部变量¶
ID: py/unused-local-variable
Kind: problem
Security severity:
Severity: recommendation
Precision: very-high
Tags:
- maintainability
- useless-code
- external/cwe/cwe-563
Query suites:
- python-security-and-quality.qls
定义了(通过赋值)但从未使用过的局部变量。
有时需要一个从未使用过的变量。这些未使用的变量应该具有独特的名称,以便代码的读者清楚地知道它们是故意不使用的。最常见的约定是将变量命名为_
,或以unused
或_unused
开头。
该查询接受以下名称,用于表示有意不使用的变量
任何完全由下划线组成的名称。
任何包含
unused
的名称。名称
dummy
或empty
。任何形式为
__xxx__
的“特殊”名称。例如x, y = func()
中定义的变量被集体处理。如果它们都未使用,则会报告此问题。否则,它们都被视为已使用。
建议¶
如果该变量是为了文档目的或其他原因而故意不使用的,则将其名称更改为表示它未被使用,否则删除赋值(注意,如果赋值的右侧有副作用,则不要删除它)。
示例¶
在此示例中,random_no
变量从未读取,但它的赋值有副作用。因此,重要的是只删除第 10 行赋值的左侧。
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
def write_random():
random_no = write_random_to_file()
print "A random number was written to random.txt"