Llegó 2020, lo que significa que Python 2 ya no es compatible . Para ser precisos, los principales desarrolladores ya han dejado de trabajar en la rama, y el lanzamiento de la versión 2.7.18, dedicada a PyCon US en abril de 2020, marcará el cese completo de cualquier actividad relacionada con Python 2.
Por otro lado, se realizó el lanzamiento reciente de Python 3.8, agregando un poco de azúcar sintáctica al lenguaje. Python 3.9, sin embargo, todavía no se espera pronto , y sin embargo , no parece agregar nada interesante al lenguaje.
Entonces, si no ha abandonado repentinamente Python 2, entonces simplemente no tiene sentido: la compatibilidad con la segunda versión ya se ha detenido, y la transición inmediata a 3.8 le permitirá usar el lenguaje en su estado más actual durante mucho tiempo.
Bueno, para que sea más fácil decidir, a continuación hay una descripción general de las principales innovaciones de Python 3.8, que será útil para todos los pitonistas.
1. Expresiones de asignación
También conocido como operador de morsa, una nueva sintaxis que le permite asignar valores a variables dentro de otra expresión. Esta es probablemente la más famosa y discutida de las innovaciones de la versión 3.8.
a = 6
El propósito de presentar al operador es aumentar la legibilidad del código, por lo que usarlo (como todos los demás operadores) no es necesario a la primera oportunidad, sino solo cuando sea apropiado.
2. Solo argumentos posicionales
Las funciones pueden tomar dos tipos de argumentos.
- Posicional : transmitido por posición
- Nombrado - pasado por nombre
En el siguiente código, los valores de ambos argumentos ayb se pueden pasar por posición y por nombre.
def my_func(a, b=1): return a+b my_func(5,2)
En la nueva versión de Python, puede limitar explícitamente cuál de los parámetros solo puede ser posicional o solo nombrado usando los símbolos / y * en la firma de la función (este último, sin embargo, apareció antes de Python 3.8).
En el siguiente ejemplo, los dos primeros parámetros a y b son solo posicionales, c y d pueden ser cualquiera, y los dos últimos e y f deben nombrarse.
def my_func(a, b, /, c, d, *, e, f): return a+b+c+d+e+f my_func(1, 2, 3, 4, 5, 6)
¿Por qué limitar la flexibilidad de los tipos de argumentos? En algunos casos, usar un nombre de parámetro en lugar de su posición será inútil e inapropiado. La restricción también evitará problemas si planea cambiar los nombres de los argumentos posicionales en el futuro.
3. líneas f 2.0
Es difícil describir con palabras cuánto más fácil y elegante fue el formato de las líneas f realizadas en Python 3.6.
Es difícil de creer, pero Python 3.8 logró hacerlos aún más convenientes. Al agregar el signo = después del nombre de la variable que se sustituye, puede mostrar su nombre y su valor sin duplicar el nombre.
pi = 3
La depuración con impresión será aún más conveniente :)
4. El orden inverso de las entradas del diccionario.
La iteración sobre los diccionarios ahora se puede hacer en reversa usando invertida () .
5. Obtención de metadatos de otros módulos.
El nuevo módulo importlib.metadata le permitirá obtener metadatos (por ejemplo, versión) de paquetes de terceros.
6. finalmente + continuar
Anteriormente, no se podía usar la declaración de continuar en el interior finalmente debido a la dificultad de implementar esta función. Ahora puedes.
for i in range(2): try: print(i) finally: print('.') continue print(' .')