Lanzamiento de Python 3.8

Las innovaciones más interesantes:

  • Expresión de tarea:

    El nuevo operador := le permite asignar valores a variables dentro de expresiones. Por ejemplo:
    si (n := len(a)) > 10:
    print(f"La lista es demasiado larga ({n} elementos, esperado <= 10)")

  • Argumentos únicamente posicionales:

    Ahora puede especificar qué parámetros de función se pueden pasar a través de la sintaxis de argumentos con nombre y cuáles no. Ejemplo:
    def f(a, b, /, c, d, *, e, f):
    imprimir(a,b,c,d,e,f)

    f(10, 20, 30, d=40, e=50, f=60) # Aceptar
    f(10, b=20, c=30, d=40, e=50, f=60) # error, `b` no puede ser un argumento con nombre
    f(10, 20, 30, 40, 50, f=60) # error, `e` debe ser un argumento con nombre

    Este cambio ofrece a los desarrolladores una forma de proteger a los usuarios de sus API de cambios en los nombres de los argumentos de las funciones.

  • Admite f-strings = para expresiones autodocumentadas y depuración:

    Se agregó azúcar para simplificar los mensajes de depuración/registro.
    n = 42
    print(f'Hola mundo {n=}.')
    # imprimirá "Hola mundo n=42".

  • Se corrigió la palabra clave continuar en el bloque finalmente (no funcionó antes).

Otro:

  • Puede especificar explícitamente la ruta al caché de código de bytes en lugar del __pycache__ predeterminado.
  • Las compilaciones de depuración y versión utilizan la misma ABI.

Fuente: linux.org.ru

Añadir un comentario