[pyar] Ayuda - Nuevo en python - como leer error?

Damián Castro ltdicai en gmail.com
Vie Sep 27 03:04:29 -03 2019


Hola Edgardo, el traceback generalmente se lee de abajo hacia arriba,
siendo la última línea el error en sí, mientras que las anteriores indican
la ejecución del código que llevó a ese error. En ese ejemplo:

File "test.py", line 9, in imprimeDoble
>         print cat

NameError: cat


Indica que se produjo un error del tipo NameError en la línea 9 del archivo
test.py dentro de la función imprimeDoble. Ahora bien, si queremos saber
cuándo se llamó a esa función vemos las líneas encima:

File "test.py", line 5, in catDoble
>         imprimeDoble(cat)


Ahí dice que se llamó a la función imprimeDoble en la línea 5 del mismo
archivo, dentro de la función catDoble. Siguiendo la misma idea, vemos
cuándo se llama a catDoble mirando las primeras líneas:

File "test.py", line 13, in __main__
>         catDoble(cantus1, cantus2)


Efectivamente se llamó a catDoble en el mismo archivo pero en la línea 13
dentro de la función __main__, o sea la principal.

Entonces, con todo esto podés armar el flujo de ejecución para poder
detectar el porqué del error: catDoble() -> imprimeDoble() -> print cat ->
NameError

Espero que esto te ayude

Saludos,
Damián

El vie., 27 de sep. de 2019 a la(s) 02:41, Edgardo (edgardolor en gmail.com)
escribió:

> Buenas noches,
>
> Les comento que hace algunos años intente aprender a programar y desistí
> por cuestiones laborales. Hoy por hoy ya con laburo estable estoy volviendo
> al ruedo. Para ponerlos en contexto, de forma rápida, mi hno de 29 esta
> casi por la mitad de Ing Industrial en la UTN y al no conseguir laburo se
> decidió por aprender a programar (después de ver la cant de gente que piden
> en los portales laborales) y yo de 31 me sume a la voleada ya que si
> conozco a alguien super capaz y que es inteligente es el.
>
> Estamos leyendo a la par "Aprenda a pensar como un programador con Python"
> y hasta casi el final del cap 3 veníamos bárbaro, pero es acá donde nos
> surge la siguiente duda:
>
> El cap define 2 funciones:
>
> 1)
> def imprimeDoble(paso):
>    print paso, paso
>
> 2)
> def catDoble(parte1, parte2):
>    cat = parte1 + parte2
>    imprimeDoble(cat)
>
> Luego hace la llamada a la función 1 y le pasa como argumento la variable
> local cat, creada solo dentro de catDoble().
>
> *Entiendo el PORQUE del error que devuelve python lo que no entiendo es
> como leerlo, seria el siguiente:*
>
> Traceback (innermost last):
>     File "test.py", line 13, in __main__
>         catDoble(cantus1, cantus2)
>     File "test.py", line 5, in catDoble
>         imprimeDoble(cat)
>     File "test.py", line 9, in imprimeDoble
>         print cat
> NameError: cat
>
> Y detalla "Esta lista de funciones de llama traceback (traza inversa). Le
> dice a usted en
> qué archivo de programa sucedió el error, y en qué lı́nea, y qué funciones
> se
> ejecutaban en ese momento. También muestra la lı́nea de código que causó el
> error."
>
> Si alguno fuera tan amable de explicarmelo se lo agradecería.
>
> Muchas gracias,
>
> Toty
> _______________________________________________
> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
> Sitio web: http://www.python.org.ar/
>
> Para administrar la lista (o desuscribirse) entrar a
> http://listas.python.org.ar/listinfo/pyar
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20190927/bdd0931c/attachment.html>


Más información sobre la lista de distribución pyar