格式化字符串混合使用隐式和显式编号的字段¶
ID: py/str-format/mixed-fields
Kind: problem
Security severity:
Severity: error
Precision: high
Tags:
- reliability
- correctness
Query suites:
- python-security-and-quality.qls
格式化表达式,即 the_format.format(args)
或 format(the_format, args)
形式的表达式,可以使用显式编号的字段,例如 {1}
,或隐式编号的字段,例如 {}
,但不能同时使用两者。这样做会导致抛出 ValueError
。
建议¶
使用显式编号的字段或隐式编号的字段,但保持一致。
示例¶
在以下示例中,格式化使用隐式,{}
,和显式,{1}
,字段编号,这是非法的。
def illegal_format():
"{} {1}".format("spam", "eggs")
参考资料¶
Python 库参考:字符串格式化。