Las 3 principales características nuevas de Python 3.11: Prepárese

May 10 2022
Python 3.11 aún no está disponible, pero puede probar la versión RC. Alerta de spoiler: es increíble
Se espera que Python 3.11 salga al aire en octubre de 2022.
Foto de Compare Fiber en Unsplash

Se espera que Python 3.11 salga al aire en octubre de 2022. Faltan cinco meses, entonces, ¿qué pasa con la exageración? Como de costumbre, podemos probar la versión RC y ver cómo se compara con Python 3.10.

Eso es exactamente lo que he hecho. Configuré dos contenedores Docker, uno para Python 3.10 y el otro para Python 3.11 , y los adjunté a ventanas separadas de Visual Studio Code. Ejecutaremos exactamente el mismo código en ambos y veremos qué trae la nueva versión.

TL; DR : hay muchas características nuevas, pero he decidido escribir sobre tres. Estas son mejores ubicaciones de error, notas de excepción y un analizador TOML incorporado. Es una gran mejora con respecto a las versiones anteriores de Python. Consulte el registro de cambios oficial para obtener una lista completa de las nuevas funciones.

¿Sabía que Python 3.11 será hasta un 60 % más rápido que Python 3.10? Aquí hay un punto de referencia detallado .

¿No tienes ganas de leer? Mira mi video en su lugar:

Función #1 de Python 3.11: Ubicaciones de error mejoradas

Al imprimir rastreos, el intérprete de Python ahora señalará la expresión exacta que causó el error en lugar de solo la línea. Por ejemplo, aquí hay un fragmento de código que generará un error ya que el elemento de la lista en el índice dado no existe:

if __name__ == "__main__":
    l = [1, 2, 3]
    print(l[3])

Imagen 1 — Ubicaciones de error mejoradas (1) (imagen del autor)

Por otro lado, Python 3.11 imprimirá lo siguiente:

Imagen 2 — Ubicaciones de error mejoradas (2) (imagen del autor)

Python 3.11 subraya la parte exacta del código que causó el error, lo cual es claro. La historia es similar con, digamos, los diccionarios de Python. El siguiente fragmento de código generará un error porque el diccionario no tiene esa clave:

if __name__ == "__main__":
    d = {"key1": "value1", "key2": "value2"}
    print(d["key3"])

Imagen 3 — Ubicaciones de error mejoradas (3) (imagen del autor)

Y aquí está el resultado de Python 3.11:

Imagen 4 — Ubicaciones de error mejoradas (4) (imagen del autor)

Una vez más, Python 3.11 subraya la parte exacta del código que provocó el error.

Función #2 de Python 3.11: notas de excepción

La clase de Python Exceptiontendrá un __note__atributo en Python 3.11. Es Nonepor defecto, pero puede anularlo con cualquier cadena que desee. Claro, esta no es la característica más innovadora, pero una nota aquí y allá puede ser útil si tiene docenas de clases de excepción personalizadas.

Este es el código que ejecutaremos en ambos contenedores:

class CustomException(Exception):
    __note__ = "Note about my custom exception"

if __name__ == "__main__":
    raise CustomException()

Imagen 5: generación de una excepción personalizada (1) (imagen del autor)

Como era de esperar, la Exceptionclase de Python 3.10 no conoce el nuevo atributo. Es una historia completamente diferente con Python 3.11:

Imagen 6 — Generación de una excepción personalizada (2) (imagen del autor)

Una vez más, Python 3.11 subraya la línea exacta que causó un error, uno obvio en este caso, pero también imprime nuestra nota al final.

Función #3 de Python 3.11: analizador TOML incorporado

TOML , o el lenguaje mínimo obvio de Tom , es un formato de archivo de configuración mínimo. Antes de Python 3.11, no había una biblioteca integrada para trabajar con archivos de configuración TOML. Eso cambia ahora.

A continuación se muestra el fragmento de código que ejecutaremos en ambos contenedores:

import tomllib 
DOC = """
[main]
python_version = 3.11
[api]
endpoint_users = "/api/v2/users"
endpoint_posts = "/api/v2/posts"
"""
if __name__ == "__main__":
    doc_parsed = tomllib.loads(DOC)
    print(doc_parsed)

Imagen 7 — Archivo de configuración TOML (1) (imagen del autor)

Python 3.11 lo admite, ya que no tiene problemas para analizar la cadena TOML:

Imagen 8 — Archivo de configuración TOML (2) (imagen del autor)

La instalación de una biblioteca dedicada para analizar archivos TOML toma segundos, claro, pero es bueno ver que será una funcionalidad integrada de la nueva versión.

Resumen de las nuevas características de Python 3.11

Hemos cubierto tres características que vienen en Python 3.11. Hay otros, claro, como el tipo propio, los grupos de excepción, las comprensiones asíncronas y más, pero puede consultar el registro de cambios oficial si está interesado.

Probablemente la mayor mejora que viene con la nueva versión de Python es el aumento de velocidad. En promedio, Python 3.11 será un 15 % más rápido que Python 3.10, y la diferencia llega al 64 %. He comparado los dos en mi artículo de referencia detallado , así que asegúrese de comprobarlo.

¿Cuál es tu función favorita de Python 3.11? Por favor, hágamelo saber en la sección de comentarios a continuación.

¿Te encantó el artículo? Hazte miembro de Medium para seguir aprendiendo sin límites. Recibiré una parte de su cuota de membresía si usa el siguiente enlace, sin costo adicional para usted.

Lecturas recomendadas

  • Los 5 mejores libros para aprender los requisitos previos de ciencia de datos (matemáticas, estadísticas y programación)
  • Los 5 mejores libros para aprender ciencia de datos en 2022
  • 7 formas de imprimir una lista en Python
  • Contratarme como redactor técnico
  • Suscríbete en YouTube
  • Conectar en LinkedIn

© Copyright 2021 - 2022 | unogogo.com | All Rights Reserved