[Python-es] [Consulta] Sobre keyerror

lasizoillo lasizoillo en gmail.com
Jue Jul 2 21:29:53 EDT 2020


Buenas, perdonad el Off Topic, pero creo que es interesante comentar esto.

El jue., 2 jul. 2020 a las 23:19, Gerardo Diez (<
gerardo.diez.garcia en gmail.com>) escribió:

> Hola,
>
> No soy precisamente un experto, pero yo normalmente voy poniendo prints
> /liga por todos lados para que me vaya mostrando el contenido de las
> cadenas.
>
>
>
No te voy a dármelas de listo y voy a confesar que de vez en cuando también
hago "print debugging", pero cuando cuando lo hago es por pura vagancia y
cosas muy rapiditas aun sabiendo que no es lo mejor para el día a día o
para proyectos que van cogiendo cierto tamaño.

Un avance sobre sobre el "print debugging" es usar el módulo logging.
Basicamente la idea es que los prints que usas de debug los tienes que
quitar para no tener "morralla" en producción. Si los imprimes con nivel de
log debug, modificando en un único sitio puedes hacer que aparezcan o
desaparezcan con la configuración del logger y no se escapa ninguno a
producción ensuciándose los logs. Y puedes incluso configurar para que
determinado módulo (o el namespace que utilices) tenga un cierto nivel de
log (por ejemplo DEBUG) mientras que otros módulos tengan otro nivel de log
(por ejemplo WARNING).

Pero lo mejor del mundo mundial es usar un debugger. Pdb viene con python
pero es muy espartano, seguramente estés más cómodo con ipdb. Y si usas un
IDE seguro que se integra con uno, que es incluso más cómodo. Puedes poner
puntos de ruptura (el código se ejecuta hasta llegar a uno de ellos),
ejecutar a partir de ahí paso a paso, analizar cualquier variable que
tengas en el scope, volver a hacer que el programa se ejecute hasta el
final o el siguiente punto de ruptura, usar el repl de python para probar
que el código que te va a solucionar el problema realmente funciona,... Al
principio puede que cueste un poquito, pero la inversión de tiempo se
amortiza rápido.

Resumen: a nada que estés haciendo algo que no sea un script de usar y
tirar configura el logger y deja de usar print debugging. Aun así no hagas
"print debugging" con el logger a no ser que esté justificado, mejor usa un
debugger.

Un saludo,

Javi
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20200703/fe442abf/attachment.html>


Más información sobre la lista de distribución Python-es