代码之家  ›  专栏  ›  技术社区  ›  alvas

Pylint W1202报告使用%但没有

  •  1
  • alvas  · 技术社区  · 7 年前

    pylint的输出状态为:

    nltk/nltk/标签/感知器.py:203:[W1202(测井格式插值),感知器。列车]在日志函数中使用%格式,并将%参数作为参数传递

    但是看看密码 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的信息?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Matt Messersmith    7 年前

    信息解读:

    意思是你应该把参数作为参数和 你用的是(旧的) % 格式化样式(但将它们作为参数传递,而不是使用 % 把arg包起来)。它是 说你在用 %

    为什么会这样:

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

    如何修复:

    我想如果改成 logging.info("Iter %d: %d/%d=%d", iter_, c, n, _pc(c, n)))