gpt4 book ai didi

python - 遵循 Python 延迟日志记录格式,但 pylint 仍然显示(日志记录而非延迟)消息

转载 作者:行者123 更新时间:2023-12-02 19:07:03 26 4
gpt4 key购买 nike

我正在记录一些信息消息,并希望确保我遵循 PEP 标准。 Pylint 说这一行:

        LOG.info('Directories have been made in /home/bushbak2/projects/'+
'system_file_audit/%s/', manu)

不遵循 python 的惰性日志记录格式。难道是因为线路延续了?

这是我从 pylint 收到的消息:

auto_audit.py:157:8: W1201: Use lazy % formatting in logging functions (logging-not-lazy)

为什么 pylint 仍然会引发此消息?我是否没有适当遵循 PEP 标准?

干杯,

布伦丹

最佳答案

两个字符串之间的 + 的问题在于添加了一个添加操作,该操作必须在调用 LOG.debug 之前在运行时进行评估。

如果您必须过于频繁地评估此行,即使没有为您的程序设置调试日志记录标志,这也可能会出现性能问题。

这是 logging.debug("this is "+ "a test %s", 123) 的抽象语法树:

logging.debug("this is " + "a test %s", 123)

正如您所看到的,函数调用的第一个参数总是有一个添加操作。

另一方面,如果我们使用 logging.debug("this is ""a test %s", 123) (用空格代替 + 符号)。 python 编译器生成另一个 AST:

logging.debug("this is " "a test %s", 123)

f 字符串会发生什么情况?很多人(包括我)都喜欢 python F-strings。如果我们传递一个 f 字符串,结果与带有加号的结果类似。

logging.debug("this is a test {123}") 的 AST 显示 python 必须在函数调用之前执行字符串操作: logging.debug("this is a test {123}

关于python - 遵循 Python 延迟日志记录格式,但 pylint 仍然显示(日志记录而非延迟)消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64894386/

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