对于以下代码:
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/