Релиз на Python 3.8

Най-интерсните нововъведения:

  • Израз за присвояване:

    Новият оператор := позволява присвояване на стойности на променливи в рамките на изрази. Например:
    if (n := len(a)) > 10:
    print(f"Списъкът е твърде дълъг ({n} елемента, очаквани <= 10)")

  • Аргументи само по позиция:

    Сега е възможно да се посочат кои параметри на функциите могат да се предават чрез синтаксиса на именованите аргументи, а кои не. Пример:
    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) # ОК
    f(10, b=20, c=30, d=40, e=50, f=60) # грешка, `b` не може да бъде именуван аргумент
    f(10, 20, 30, 40, 50, f=60) # грешка, `e` трябва да бъде именуван аргумент

    Тази промяна дава на разработчиците начин да защитят потребителите на своите API от промени в имената на аргументите на функциите.

  • Поддръжка на f-стрингове = за само-документиращи изрази и отстраняване на грешки:

    Добавен е синтаксис за опростяване на отладъчни/логиращи съобщения.
    n = 42
    print(f'Здравей свят {n=}.')
    # напечатает "Hello world n=42."

  • Поправено е ключовото слово continue в блока finally (преди това не работеше).

Други:

  • Може да се посочи явен път към кеша на байткодовете вместо по подразбиране __pycache__.
  • Debug и Release сборките използват един и същ ABI.

Източник: linux.org.ru

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster