Новий рік — новий Python

27 січня 2017 10:50 OlegWock 1124 0

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. Прочитати всі зміни ви можете в офіційному ченджлозі.

Джерело перекладу

1124 5

Схожі матеріали:

Коментарі:

Авторизуйтесь, щоб залишити коментар.