¿Qúe hay de nuevo en Python 3.9?

Python 3.9

Acaba de lanzarse Python 3.9, la primera versión desde que Python 2 perdió el soporte. ¿Que hay de nuevo? ¿Debo migrar? Vamos a averiguarlo.

Advertencias que dentro de poco serán errores

Python 3, en sus primeras versiones, tenía muchas opciones para dar soporte a código original de Python 2. Como Python 2 dejó de ser soportado este año en 2020, esta versión será la última que mostrará DeprecationWarnings (advertencias de código obsoleto), a partir de Python 3.10, estas advertencias se convertirán en errores.

Si tu código muestra DeprecationWarnings, estás a buen tiempo para hacer los cambios. Por mi parte, he notado que la librería Graphene v2.1.8 tiene esas advertencias, pero ya han trabajado en ellas, sólo es cuestión que lanzen una nueva versión.

Unir y actualizar diccionarios

Esta funcionalidad viene de perlas si trabajas con muchos datos en diccionarios. Podrás agregar datos a un diccionario, o bien, unir dos diccionario para crear uno nuevo, con los operadores (|) y (|=) respectivamente.

En este ejemplo puedes ver como utilizarlos para unir diccionarios de forma mas sencilla:

# Diccionarios a unir:
d1 = {"x": 1, "y": 4, "z": 10}
d2 = {"a": 7, "b": 9, "x": 5} # x se repite

# Opción 1: Crear nuevo diccionario
d3 = d1 | d2
# d3 = {'x': 5, 'y': 4, 'z': 10, 'a': 7, 'b': 9}

# Opción 2: Actualizar alguno de los diccionarios
d1 |= d2
# d1 = {'x': 5, 'y': 4, 'z': 10, 'a': 7, 'b': 9}

Remover prefijos y sufijos de cadenas

¿Te ha pasado que tienes una cadena de texto, y debes remover algún texto al inicio o al final de la misma? Con las funciones integradas removeprefix() y removesuffix(), será mas fácil que antes (de por si ya era fácil).

texto = "HolaPythonAdios"

texto.removeprefix("Hola")
# PythonAdios

text.removesuffix("Adios")
# HolaPython

Mas mejoras y cambios:

Otros cambios un poco mas oscuros son:

  • Orden topológico (grafos)
  • Alcance de direcciones IPv6
  • Mínimo común múltiplo y máximo comúm divisor
  • Siguiente número y último digito en flotantes
  • Nuevos códigos HTTP agregados

¿Cúanto tiempo tendrá soporte?

Desde la versión 3.5, cualquier versión subsecuente de Python tendrá soporte por mínimo 5 años. El record actual de soporte lo tiene la versión 2.7, por casi 10 años.

¿Debo cambiar a Python 3.9?

Python 3.5 y superiores

Como regla general, cada que sale una nueva tecnología, debemos revisar las mejoras y problemas que nos puede traer; y comprarlas junto con el tiempo que nos costaría implementarlas. En mi experiencia, cuando sale una versión nueva, algunas librerías necesitan actualizarse, y especialmente en Windows, tardan días o semanas en estar disponibles. Así que por lo pronto, no cambiaría a Python 3.9 hasta estar seguro de que su soporte en Windows es bueno.

Python 2

Si sigues en Python 2, ¡deja de leer esto y comienza a migrar ya!

Después de Python 3.9, ¿Sigue Python 4?

No, la siguiente versión será Python 3.10. Python 4 no tiene una fecha definida, y practicamente su mención es nula en el círculo de desarrolladores de Python, exceptuando la broma de Charles Leifer sobre las nuevas características de Python 4.

Conclusión

Estos cambios, puede que no sean tan relevantes para tus tareas diarias con Python, pero sin duda, hacen algunas tareas más fáciles, que siempre es uno de los objetivos de Python. Quizá el día de hoy no sea tan importante migrar (¡acaba de salir!) pero poco a poco se irá integrando en repositorios y entornos de los programadores.

Y tu, ¿piensas probar pronto Python 3.9?

Written on October 5, 2020