Python: 5 nuevas características y funciones que trae su versión 3.10

March 22, 2022

Tags: Tecnologías
python
Unsplash

 

Python es uno de los lenguajes de programación más populares del momento. Debido a su versatilidad, es utilizado por personas ajenas al desarrollo de sitios web y aplicaciones, esto ha sido motivo principal de su popularidad.

 

Las personas dentro de diferentes campos usan Python para múltiples tareas, como análisis y visualización de datos, creación de inteligencia artificial y automatización de diferentes máquinas, quizás este último es su uso más popular.

 

Otros usos que se le dan a Python, entre personas que no son desarrolladores, son: automatizar las acciones de copiar y pegar archivos y carpetas, subirlos a un servidor. Incluso con Python, puede automatizar sus tareas en archivos de Excel, PDF y CSV.

 

Ahora, este versátil lenguaje de programación está estrenando su nueva versión, 3.10, y en este blog hablaremos un poco sobre ella.

 

Python 3.10: lo que trae esta nueva actualización

 

En su página web oficial, detallaron las nuevas características y funciones que vienen con esta actualización, entre ellas destacan:

 

Administradores de contexto entre paréntesis

 

Ahora se admite el uso de paréntesis para la continuación en varias líneas en los administradores de contexto. Esto permite formatear una colección larga de administradores de contexto en varias líneas de manera similar a como era posible anteriormente con las declaraciones de importación. Por ejemplo, todos estos ejemplos ahora son válidos:

 

with (CtxManager() as example):
    ...

with (
    CtxManager1(),
    CtxManager2()
):
    ...

with (CtxManager1() as example,
      CtxManager2()):
    ...

with (CtxManager1(),
      CtxManager2() as example):
    ...

with (
    CtxManager1() as example1,
    CtxManager2() as example2
):
    ...

 

También es posible usar una coma final al final del grupo adjunto:

 

with (
    CtxManager1() as example1,
    CtxManager2() as example2,
    CtxManager3() as example3,
):
    ...

 

Mejora en los mensajes de error de sintaxis

 

Una de las mejoras, y que ha sido celebrada por los expertos de este lenguaje, fue que ahora cuando se analiza código que contenga paréntesis o corchetes sin cerrar, incluye la ubicación en lugar de mostrar SyntaxError:EOF inesperado al apuntar una ubicación incorrecta. Por ejemplo:

 

expected = {9: 1, 18: 2, 19: 2, 27: 3, 28: 3, 29: 3, 36: 4, 37: 4,
            38: 4, 39: 4, 45: 5, 46: 5, 47: 5, 48: 5, 49: 5, 54: 6,
some_other_code = foo()

 

En Python 3.10, se emite un mejor informe del error

 

File "example.py", line 1
    expected = {9: 1, 18: 2, 19: 2, 27: 3, 28: 3, 29: 3, 36: 4, 37: 4,
               ^
SyntaxError: '{' was never closed

 

Errores en sangria

 

Ahora, con Python 3.10, las excepciones de IndentationError son más detalladas con respecto a qué tipo de bloque esperaba una sangría:

 

>>> def foo():
...    if lel:
...    x = 2
  File "<stdin>", line 3
    x = 2
    ^
IndentationError: expected an indented block after 'if' statement in line 2

 

Errores de atributo

 

En la página oficial de Python, explican “al imprimir AttributeError, PyErr_Display() ofrecerá sugerencias de nombres de atributos similares en el objeto desde el que se generó la excepción”. Ofrecen este ejemplo:

 

>>> collections.namedtoplo
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: module 'collections' has no attribute 'namedtoplo'. Did you mean: namedtuple?

 

Errores de nombre

 

Con esta actualización, PyErr_Display() ahora ofrece sugerencias de nombres de variables similares en la función donde se presente un error de nombre:

 

>>> schwarzschild_black_hole = None
>>> schwarschild_black_hole
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'schwarschild_black_hole' is not defined. Did you mean: schwarzschild_black_hole?

 

Estas son las nuevas funciones más destacadas que vienen con la actualización Python 3.10. En la página oficial del popular lenguaje de programación detallan cada una de sus nuevas características, haciendo más fácil el desarrollo de páginas web y los procesos de automatización para los expertos en este lenguaje. 

 

Te recomendamos en video