Wydanie Pythona 3.8

Najciekawsze nowości:

  • Wyrażenie przypisujące:

    Nowy operator := pozwala na przypisywanie wartości do zmiennych wewnątrz wyrażeń. Na przykład:
    if (n := len(a)) > 10:
    print(f"Lista jest zbyt długa ({n} elementów, oczekiwano <= 10)")

  • Argumenty tylko pozycyjne:

    Teraz można określić, które parametry funkcji można przekazywać za pomocą składni argumentów nazwanych, a które nie. Przykład:
    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) # błąd, `b` nie może być argumentem nazwanym
    f(10, 20, 30, 40, 50, f=60) # błąd, `e` musi być argumentem nazwanym

    Ta zmiana daje programistom sposób na ochronę użytkowników ich API przed zmianami w nazwach argumentów funkcji.

  • Wsparcie dla f-stringów = dla auto-dokumentujących wyrażeń i debugowania:

    Dodano cukier do uproszczenia komunikatów debugujących/logujących.
    n = 42
    print(f'Witaj świecie {n=}.')
    # напечатает "Hello world n=42."

  • Naprawiono słowo kluczowe continue w bloku finally (wcześniej nie działało).

Inne:

  • Można jawnie określić ścieżkę do cache'u bajtkodu zamiast domyślnego __pycache__.
  • Debug i Release używają tego samego ABI.

Źródło: linux.org.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster