格式化参数数量错误¶
ID: py/percent-format/wrong-arguments
Kind: problem
Security severity:
Severity: error
Precision: very-high
Tags:
- reliability
- correctness
- external/cwe/cwe-685
Query suites:
- python-security-and-quality.qls
格式化表达式,即格式为 fmt % arguments
的表达式,必须在表达式的右侧具有正确数量的参数。否则,将引发 TypeError
。
建议¶
更改格式以匹配参数,并确保右侧参数始终具有正确数量的元素。
示例¶
在以下示例中,格式化操作的右侧可以是长度为 2 的列表,这与格式字符串不匹配。
def unsafe_format():
if unlikely_condition():
args = (1,2)
else:
args = (1, 2, 3)
return "%s %s %s" % args