Реліз Python 3.8

Найцікавіші нововведення:

  • Надає вираз:

    Новий оператор := дозволяє надавати значення змінним усередині виразів. Наприклад:
    if (n := len(a)) > 10:
    print(f"List is too long ({n} elements, expected <= 10)")

  • Positional-тільки аргументи:

    Тепер можна вказати, які параметри можна передавати через синтаксис іменованих аргументів, а які ні. Приклад:
    def (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` не може бути іменованим аргументом
    f(10, 20, 30, 40, 50, f=60) # помилка, `e` може бути іменованим аргументом

    Ця зміна дає розробникам спосіб убезпечити користувачів API від змін у назві аргументів функцій.

  • Підтримка f-рядків = для самодокументуючих виразів та налагодження:

    Доданий цукор для спрощення налагоджувальних/логіруючих повідомлень.
    N = 42
    print(f'Hello world {n=}.')
    # надрукує "Hello world n=42."

  • Виправлено ключове слово continue у блоці finally (раніше воно не працювало).

інше:

  • Можна явно вказати шлях до кешу байткод замість дефолтного __pycache__.
  • Debug і Release складання використовують один і той же ABI.

Джерело: linux.org.ru

Додати коментар або відгук