跳到内容

percent-format-expected-mapping (F502)

派生自 Pyflakes 代码检查器。

作用

检查 printf 样式的格式字符串中是否有名为占位符,但没有映射类型的值。

为什么这不好?

当在 printf 样式的格式字符串中使用命名占位符时,这些值必须是映射类型(例如字典)。否则,表达式将引发 TypeError

示例

"%(greeting)s, %(name)s" % ("Hello", "World")

建议改为

"%(greeting)s, %(name)s" % {"greeting": "Hello", "name": "World"}

或者

"%s, %s" % ("Hello", "World")

参考