gpt4 book ai didi

python - Pylint W1202 使用 % 进行报告,但没有

转载 作者:行者123 更新时间:2023-12-01 01:37:13 25 4
gpt4 key购买 nike

pylint 的输出表明:

nltk/nltk/tag/perceptron.py:203: [W1202(logging-format-interpolation), PerceptronTagger.train] Use % formatting in logging functions and pass the % parameters as arguments

但是看看代码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 在 pylinting 时消失?

最佳答案

消息解释:

这意味着您应该将参数作为参数传递,并假装您正在使用(旧的)% 格式样式(但将它们作为参数传递,而不是使用% 并将参数括在括号中)。这并不是说您在日志消息中使用 % 进行字符串格式化。

为什么会这样:

您希望通过这种方式传递的原因是,如果消息实际上是由某个日志处理程序创建的,则字符串仅会经过模板化替换。从性能的角度来看,字符串操作总是很昂贵的。例如,如果您在 DEBUG 级别进行大量日志记录,但很少在应用程序中使用 DEBUG 级别,那么这可能会快速增加。

如何修复它:

我想如果改成 logging.info("Iter %d: %d/%d=%d", iter_, c, n, _pc(c, n)))消息将会消失(假设它们是数字,很难从示例中看出)。

关于python - Pylint W1202 使用 % 进行报告,但没有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52285839/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com