python pylint

python - Mensaje de Pylint: Nombre de constante no válida(nombre no válido)



(2)

El problema es que estás definiendo myprint a nivel de módulo.

Si lo define dentro de main, no obtendrá este error de pylint.

Pylint se queja de Invalid constant name "myprint" (invalid-name) en el caso de una taquigrafía para una función de registrador.

# import from utils import get_logger LOGFILE = ''6_evaluator.log'' myprint = get_logger(LOGFILE) def main(): # some stuff myprint(''log log'') if __name__ == ''__main__'': main()

¿Se puede hacer esto sin ajustar la configuración del pylint?

Si es necesario, aquí está la definición de get_logger :

import logging import os def get_logger(logfile): """ Return a logger that log on stdout and in LOGFILE""" if os.path.isfile(''{}''.format(logfile)): os.remove(''{}''.format(logfile)) logging.basicConfig(filename=''{}''.format(logfile), level=logging.INFO) logger = logging.getLogger('''') logger.addHandler(logging.StreamHandler()) myprint = logger.info myprint(''log file at: {}''.format(logfile)) myprint(''Again Hello from logger'') return myprint


Mover la definición de myprint a main() es una forma de suprimir el mensaje.

Según los documentos de Pylint para invalid-name (C0103) , parece que el nombre de una constante debe estar en mayúsculas. Como tal, el nombre MYPRINT no generará el mensaje.

Si agrega el comentario como abajo a la línea, el mensaje no debe ser generado.

log = get_logger() # pylint: disable=locally-disabled, invalid-name

Alternativamente, agregue lo siguiente a .pylintrc para su proyecto. Esta es mi solución preferida.

[BASIC] good-names=log

Si desea que un patrón completo de nombres no válidos (y no solo un solo nombre) sea válido, de lo contrario puede personalizar const-rgx , etc. en la misma sección. Consulte la página de pylint vinculada anteriormente.

Por último, si su aplicación es pequeña e independiente, solo puede configurar y usar el registrador raíz, como con logging.warn(''test'') .