Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
遵循Python延迟日志格式,但pylint仍然显示(日志记录不是延迟)消息_Python_Unix_Logging_Formatting_Pylint - Fatal编程技术网

遵循Python延迟日志格式,但pylint仍然显示(日志记录不是延迟)消息

遵循Python延迟日志格式,但pylint仍然显示(日志记录不是延迟)消息,python,unix,logging,formatting,pylint,Python,Unix,Logging,Formatting,Pylint,我正在记录一些信息消息,希望确保遵守政治公众人物标准。派林说这条线: LOG.info('Directories have been made in /home/bushbak2/projects/'+ 'system_file_audit/%s/', manu) 未遵循python的延迟日志记录格式。 可能是因为这条线一直延伸下去吗 这是我从派林得到的信息: auto_audit.py:157:8: W1201: Use lazy % for

我正在记录一些信息消息,希望确保遵守政治公众人物标准。派林说这条线:

        LOG.info('Directories have been made in /home/bushbak2/projects/'+
                 'system_file_audit/%s/', manu)
未遵循python的延迟日志记录格式。 可能是因为这条线一直延伸下去吗

这是我从派林得到的信息:

auto_audit.py:157:8: W1201: Use lazy % formatting in logging functions (logging-not-lazy)
为什么派林仍然提出这个信息?我是否没有适当地遵循政治公众人物标准

干杯,


Brendan

您的问题来自表达式中的
+
。Pylint将其视为一个字符串连接,因此建议您惰性地进行此连接

您可以通过删除
+
来修复它:

LOG.info('已在/home/bushbak2/projects/中创建目录'
“系统文件审计/%s/”,手动)

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

如果即使没有为程序设置调试日志标志,也必须经常计算这一行,则这可能是一个性能问题

这是
logging.debug的抽象语法树(“这是“+”测试%s”,123)

如您所见,函数调用的第一个参数始终有一个add操作

另一方面,如果我们使用
logging.debug(“这是一个测试%s”,123)
(用空格代替
+
符号)。python编译器生成另一个AST:

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

logging.debug(“这是一个测试{123}”)
的AST显示python必须在函数调用之前执行字符串操作: