Вийшла офіційна версія Python 3.8

2 хв. читання

14 жовтня вийшла офіційна версія Python 3.8 (бета була доступна ще влітку). Нову гілку будуть підтримувати ще 18 місяців, а патчі виходитимуть до 2024 року. Випуск оновлень планується кожні два місяці, починаючи з грудня.

Що нового у версії 3.8

Найважливіше — оператор присвоєння, позначається як := (поширеніша назва: walrus operator, через подібність з моржем). Він дозволяє визначати значення у складних виразах, щоб не потрібно було двічі викликати функцію в умовних операторах і циклах.

Підтримка нового синтаксису для аргументів у функції. Використання / відокремлює аргументи, яким можна вказувати значення лише в послідовному порядку, від тих, яким можна надавати значення у довільному порядку. Так функції Python зможуть повністю відтворювати поведінку функцій на С та уникати залежності від назв (якщо вони зміняться в майбутньому).

/ доповнює собою раніше додану ознака *, що відокремлює змінні, для яких може бути застосовано тільки привласнення в формі «змінна = значення». Наприклад, у функції def f (a, b, /, c, d, *, e, f): змінні a і b можуть бути присвоєні тільки в порядку перерахування значень, змінні e і f , тільки через привласнення «змінна = значення» , а змінні c і d будь-яким із зазначених способів:

f (10, 20, 30, 40, e = 50, f = 60)
f (10, 20, с = 30, d = 40, e = 50, f = 60)

Доданий новий API для C, він дозволяє налаштувати параметри ініціалізації Python. Тож вбудовувати функціонал Python у застосунки на C буде простіше.

Виклики Runtime Audit Hooks надають застосункам і фреймворкам на Python доступ до низькорівневої інформації про виконання скрипту. Так вони можуть проводити аудит процесу (відстежувати імпорт модулів, відкривання файлів, використання трасування, запуск коду через exec, eval і run_mod тощо).

Модуль pickle тепер підтримує протокол Pickle 5, що полегшує передачу великих обсягів даних між процесами в Python і скорочує кількість операцій копіювання пам'яті.

У модулі typing з'явились нові фічі: клас TypedDict для асоціативних масивів, тип Literal для обмеження параметрів або значення, що повертається декількома зумовленими значеннями ("Literal ['connected', 'disconnected']"), і конструкція Final, що визначає значення змінних, функцій, методів і класів, які не можна змінювати.

З усіма нововведеннями можна ознайомитись за посиланням.

Помітили помилку? Повідомте автору, для цього достатньо виділити текст з помилкою та натиснути Ctrl+Enter
Codeguida 4.7K
Приєднався: 10 місяців тому
Коментарі (0)

    Ще немає коментарів

Щоб залишити коментар необхідно авторизуватися.

Вхід / Реєстрація