对于以下代码:

logger.debug('message: {}'.format('test'))
pylint 产生以下警告:



我知道我可以关闭此警告,但我想了解它。我假设使用 format() 是在 Python 3 中打印语句的首选方式。为什么这对于 logger 语句来说不是这样?

最佳答案

对于 logger 语句来说不是这样,因为它依赖于以前的“%”格式,如字符串,使用给 logger 调用的额外参数提供此字符串的延迟插值。例如,而不是做:

logger.error('oops caused by %s' % exc)

你应该做
logger.error('oops caused by %s', exc)

所以只有在实际发出消息时才会插入字符串。

使用 .format() 时,您无法受益于此功能。

根据 logging 文档的 Optimization 部分:

关于python - PyLint 消息 : logging-format-interpolation,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34619790/

10-13 08:51