Python 3.6 було випущено в кінці минулого року. В новій версії було чимало покращень, давайте розглянемо головні з них.
Новий модуль: secrets
В той час як модуль random
, що вже досить давно входить в стандартну бібліотеку, надає методи для генерації псевдовипадкових чисел, які не слід використовувати в криптографічних функціях, новий модуль дозволяє генерувати криптографічно-стійкі випадкові числа для генерації нового ключа, пароля чи токена.
Новий спосіб форматування рядків
В Python вже доступно декілька способів форматувати рядок, але найпопулярнішим на даний момент є str.format()
. Зараз це робиться так:
"{0} ate {1} cookies".format(name, cookies_eaten)
Або так:
"{name} ate {cookies_eaten} cookies".format(name=name, cookies_eaten=cookies_eaten)
Тепер же, з новими f-літералами, назви змінних можна поміщати прямо в стрічку без виклику метода format
.
f"{name} ate {cookies_eaten} cookies"
Це робить код більш пітонічним - простим для розуміння та лаконічним.
Підкреслення (_
) в числах
Так, довгі числа незручно читати. Нехай ця проблема й з'являється нечасто, але через це можливі помилки в коді. Наприклад, перед подальшою обробкою нам потрібно помножити вхідне значення на мільйон.
bill_val = input_val * 1000000000
Ви можете з першого погляду визначити чи вірна там кількість нулів? Я — ні. Тому тепер можна писати так:
# Привіт Jav'істам
bill_val = input_val * 1_000_000_000
Ця маленька фіча може врятувати від багатьох помилок.
Анотації типів
Однією з головних особливостей Python є його гнучка та динамічна типізація. Але вона не завжди грає на користь. Іноді передчасне знання якого типу дані повинні бути передані в функцію і повернуті з неї дуже допомагає при відлагодженні. Можливість вказувати типи даних була і раніше (через коментарі), але в Python 3.6 це стало частиною офіційного синтаксису. Це зовсім необов'язково, адже анотації нічого не роблять під час запуску, але це дозволяє краще розуміти код ще до його запуску.
І ще багато цікавого...
Окрім цих головних фіч також покращено декілька стандартних модулів CPython. Також було покращено і сам CPython. Прочитати всі зміни ви можете в офіційному ченджлозі.
Ще немає коментарів