pylint的输出状态:
nltk / nltk / tag / perceptron.py:203:[W1202(logging-format-interpolation),PerceptronTagger.train]在日志记录函数中使用%格式并将%参数作为参数传递
但是看代码https://github.com/nltk/nltk/blob/develop/nltk/tag/perceptron.py#L203,%
字符串格式没有任何用途:
logging.info("Iter {0}: {1}/{2}={3}".format(iter_, c, n, _pc(c, n)))
我是否遗漏了一些东西或误解了W1202消息?
应该如何更改代码行以使W1202在插拔时消失?
答案 0 :(得分:2)
消息解释:
这就是说,您应该将参数作为参数传递,并且假装您使用的是(旧)%
格式设置(但请将其作为args而不是使用{{1 },并将参数包装在括号中)。 不是表示您正在%
中使用日志消息中的字符串格式。
为什么会这样:
您希望通过这种方式的原因是,如果消息实际上是由某些日志处理程序创建的,则字符串仅经过模板替换。从性能的角度来看,字符串操作总是很昂贵的。例如,如果您要在DEBUG级别进行大量日志记录,但是很少在应用程序中使用DEBUG级别,则这会很快加起来。
如何解决:
我认为,如果将其更改为%
,该消息就会消失(假设它们是数字,很难从示例中看出)。