vscode visual studio run pipy linter for disable code python python-3.x pylint

python - visual - pylint vscode disable



Mensaje de PyLint: logging-format-interpolation (1)

No es cierto para la declaración del registrador porque se basa en el formato anterior "%" como cadena para proporcionar una interpolación diferida de esta cadena usando argumentos adicionales dados a la llamada del registrador. Por ejemplo, en lugar de hacer:

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

deberías hacer

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

por lo que la cadena solo se interpolará si el mensaje se emite realmente.

No puede beneficiarse de esta funcionalidad cuando utiliza .format() .

Según la sección de Optimization de los documentos de logging :

El formato de los argumentos del mensaje se difiere hasta que no se pueda evitar. Sin embargo, calcular los argumentos pasados ​​al método de registro también puede ser costoso, y es posible que desee evitar hacerlo si el registrador simplemente descarta su evento.

Para el siguiente código:

logger.debug(''message: {}''.format(''test''))

pylint produce la siguiente advertencia:

interpolación de formato de registro (W1202):

Use el formato% en las funciones de registro y pase los parámetros% como argumentos Se utiliza cuando una instrucción de registro tiene una forma de llamada de "registro. (Format_string.format (format_args ...))". Dichas llamadas deberían usar el formato%, pero dejar la interpolación a la función de registro pasando los parámetros como argumentos.

Sé que puedo desactivar esta advertencia, pero me gustaría entenderla. Asumí que usar format() es la forma preferida de imprimir declaraciones en Python 3. ¿Por qué esto no es cierto para las declaraciones de registrador?