Versión de Python 3.8

As novidades máis interesantes:

  • Expresión da tarefa:

    O novo operador := permítelle asignar valores ás variables dentro das expresións. Por exemplo:
    se (n := len(a)) > 10:
    print(f"A lista é demasiado longa ({n} elementos, espérase <= 10)")

  • Argumentos só posicionais:

    Agora podes especificar que parámetros de función se poden pasar a través da sintaxe do argumento nomeado e cales non. Exemplo:
    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) # erro, `b` non pode ser un argumento con nome
    f(10, 20, 30, 40, 50, f=60) # erro, `e` debe ser un argumento con nome

    Este cambio ofrece aos desenvolvedores unha forma de protexer aos usuarios das súas API de cambios nos nomes dos argumentos das funcións.

  • Admite cadeas f = para expresións de autodocumentación e depuración:

    Azucre engadido para simplificar as mensaxes de depuración/rexistro.
    n = 42
    imprimir(f'Ola mundo {n=}.')
    # imprimirá "Ola mundo n=42".

  • Corrixiuse a palabra clave continue no bloque finally (antes non funcionaba).

Outros:

  • Podes especificar explícitamente o camiño á caché de bytecode en lugar do __pycache__ predeterminado.
  • As compilacións de depuración e liberación usan o mesmo ABI.

Fonte: linux.org.ru

Engadir un comentario