Релиз на 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