Además de las mejoras de tipado y la introducción de Switch-Case otra de las novedades con las que nos encontramos al actualizar a la versión 3.10 de Python son unos mensajes de error más claros. Ahora, en muchas ocasiones, cuando el código tiene un error nos encontraremos con mensajes más útiles para identificar cuál es el problema. Lo que se va a traducir en procesos de depuración más rápidos. Veamos algunos ejemplos.
Cuando nos olvidamos cerrar una lista, tupla o diccionario en Python nos encontrábamos con un error genérico “unexpected EOF while parsing”. A partir de Python 3.10 el intérprete nos indicará exactamente cual es el objeto que nos olvidamos cerrar. Permitiéndonos ir directamente al error para solucionarlo.
Por ejemplo, si nos olvidamos cerrar un diccionario:
dic = {'A':1, 'B':1 El error que nos generaría Python 3.9 sería el siguiente
File "/analyticslane/error1.py", line 2
^
SyntaxError: unexpected EOF while parsing Mientras que en Python 3.10 se obtendría el siguiente error
File "/analyticslane/error1.py", line 1
dic = {'A':1, 'B':1
^
SyntaxError: '{' was never closed Como vemos el segundo error es mucho más claro que el primero, siendo más fácil solucionar el problema.
ifSi en un if se utiliza el operador asignación (=) en lugar del operador de comparación (==) en Python 3.9 nos aparecerá un error de “invalid syntax”. Por su parte, el intérprete de Python 3.10 nos indicará el error de forma más clara. Así para el siguiente código
if 1 = 2:
pass El error que nos generaría Python 3.9 sería el siguiente
File "/analyticslane/error2.py", line 1
if 1 = 2:
^
SyntaxError: invalid syntax Mientras que en Python 3.10 se obtendría el siguiente error
File "/analyticslane/error2.py", line 1
if 1 = 2:
^
SyntaxError: cannot assign to literal here. Maybe you meant '==' instead of '='? Al igual que antes el segundo es mucho más claro que el primero.
Imagen de Michael Gaida en Pixabay
tslane es la plantilla que uso como punto de partida para mis librerías TypeScript, nacida…
En los artículos anteriores de esta serie vimos la teoría detrás del credit scoring: qué…
expresslanets es la plantilla de API REST con Express y TypeScript que empezó como una…
En el artículo del Dashboard vimos que Pareto/NBD aparecía junto a BG/NBD con un ajuste…
Durante años, CommonJS (require/module.exports) ha sido la forma por defecto de organizar módulos en Node.js,…
Cuando usas k-means tienes que decidir algo incómodo de entrada: cuántos grupos, , vas a…
This website uses cookies.