Lançamento do Python 3.8

Novidades mais interessantes:

  • Expressão de atribuição:

    O novo operador := permite atribuir valores a variáveis dentro de expressões. Por exemplo:
    if (n := len(a)) > 10:
    print(f"A lista é muito longa ({n} elementos, esperado <= 10)")

  • Argumentos apenas posicionais:

    Agora é possível indicar quais parâmetros das funções podem ser passados usando a sintaxe de argumentos nomeados, e quais não. Exemplo:
    def f(a, b, /, c, d, *, e, f):
    print(a, b, c, d, e, f)

    f(10, 20, 30, d=40, e=50, f=60) # OK
    f(10, b=20, c=30, d=40, e=50, f=60) # erro, `b` não pode ser um argumento nomeado
    f(10, 20, 30, 40, 50, f=60) # erro, `e` deve ser um argumento nomeado

    Essa mudança dá aos desenvolvedores uma forma de proteger os usuários de suas APIs contra alterações nos nomes dos argumentos das funções.

  • Suporte a f-strings = para expressões auto-documentadas e depuração:

    Adicionado açúcar para facilitar mensagens de depuração/log.
    n = 42
    print(f'Hello world {n=}.')
    # напечатает "Hello world n=42."

  • Corrigida a palavra-chave continue em um bloco finally (anteriormente não funcionava).

Outras:

  • Agora é possível especificar explicitamente o caminho para o cache de bytecode, em vez do padrão __pycache__.
  • As compilações Debug e Release usam o mesmo ABI.

Fonte: linux.org.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster