Wersja Pythona 3.8

Najciekawsze innowacje:

  • Wyrażenie przypisania:

    Nowy operator := umożliwia przypisanie wartości zmiennym w ramach wyrażeń. Na przykład:
    if (n := len(a)) > 10:
    print(f"Lista jest za długa ({n} elementów, oczekiwano <= 10)")

  • Argumenty tylko pozycyjne:

    Możesz teraz określić, które parametry funkcji mogą być przekazywane za pomocą składni nazwanych argumentów, 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ć nazwanym argumentem
    f(10, 20, 30, 40, 50, f=60) # błąd, `e` musi być nazwanym argumentem

    Ta zmiana umożliwia programistom ochronę użytkowników interfejsów API przed zmianami w nazwach argumentów funkcji.

  • Obsługa f-strings = dla wyrażeń samodokumentujących i debugowania:

    Dodano cukier, aby uprościć komunikaty debugowania/rejestrowania.
    n = 42
    print(f'Witaj, świecie {n=}.')
    # wypisze „Witaj świecie n=42.”

  • Naprawiono słowo kluczowecontinue w bloku Final (wcześniej nie działało).

Inne:

  • Możesz jawnie określić ścieżkę do pamięci podręcznej kodu bajtowego zamiast domyślnego __pycache__.
  • Kompilacje debugowania i wydawania korzystają z tego samego ABI.

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

Dodaj komentarz