语句没有效果¶
ID: py/ineffectual-statement
Kind: problem
Security severity:
Severity: recommendation
Precision: high
Tags:
- maintainability
- useless-code
- external/cwe/cwe-561
Query suites:
- python-security-and-quality.qls
没有副作用的表达式语句只是累赘。它会让读者感到困惑,并可能对性能造成轻微影响。
建议¶
首先确定代码的意图,如果没有副作用的意图,则只需删除该语句。但是,很可能代码中存在错误,并且意图产生某种效果。
此查询不会将仅包含字符串的语句标记为没有副作用,因为这些字符串通常用作注释。如果你想使用字符串作为注释,最常见的约定是使用三引号字符串而不是单引号字符串。尽管一致性比遵循任何特定风格更重要。
示例¶
在这个示例中,increment_and_show()
函数的两行代码都没有效果。
第一行,++x
,没有效果,因为它两次应用了一元加运算符。程序员可能本意是 x += 1
第二行,x.show
,没有可观察到的效果,但可能本意是 x.show()
。
def increment_and_show(x):
++x
x.show