🐍 Python 3.6 - Что нового? - спросите вы.
И я, таки, отвечу:
PEP 498 (https://www.python.org/dev/peps/pep-0498/): форматированные строковые литералы.name = 'Fred'
f'He said his name is {name}.' # 'He said his name is Fred.'
width = 10
precision = 4
value = decimal.Decimal('12.34567')
f'result: {value:{width}.{precision}}' # nested fields
# 'result: 12.35'
date = datetime.date(1991, 10, 12)
f'{date} was on a {date:%A}'
# '1991-10-12 was on a Saturday'
# Попахивает перлом?
f'{{ {4*10} }}' # '{ 40 }'
f'{{{4*10}}}' # '{40}'
PEP 515 (https://www.python.org/dev/peps/pep-0515/): подчёркивания в числовых литералах.# grouping decimal numbers by thousands
amount = 10_000_000.0
# grouping hexadecimal addresses by words
addr = 0xCAFE_F00D
# grouping bits into nibbles in a binary literal
flags = 0b_0011_1111_0100_1110
# same, for string conversions
flags = int('0b_1111_0000', 2)
PEP 526 (https://www.python.org/dev/peps/pep-0526): синтаксис аннотаций для переменных.
primes: List[int] = []
captain: str # Note: no initial value!
class Starship:
stats: ClassVar[Dict[str, int]] = {}
Улыбнулся от фразы:
Если разработчики Python не хотят делать его строго типизированным, то тогда кто-то другой это сделает. Например в php 7 и perl 6 можно включать проверку типов переменных.
PEP 525 (http://www.python.org/dev/peps/pep-0525): асинхронные генераторы.
PEP 530 (http://www.python.org/dev/peps/pep-0530): асинхронные компоновки.
PEP 506 (http://www.python.org/dev/peps/pep-0506): Для упрощения генерации криптостойких псевдослучайных чисел добавлен модуль secrets.
Подробности (https://www.python.org/downloads/release/python-360/) | Тема на ЛОРе (https://www.linux.org.ru//news/opensource/13080877)
Лично я добавил бы в python знак доллара в начале имён переменных, как в php, а то иногда смотришь на код и трудно разобрать где функция, где переменная.
Потом добавил бы фигурные скобки вместо отступов.
И сделал бы возможность строгой типизации (включать по желанию) для переменных.
И лямбды не в одну строчку (хотя эта возможность сомнительного характера).
В документации python нет комментариев от пользователей с примерами их кода и нет перевода на другие языки. Это не есть хорошо. Ещё в самой документации мало примеров реального кода.
Говорят что в python всего один способ сделать что-то, но это ложь, например форматирование строк можно делать вот так:
1. 'Вася %s' % 'Пупкин'
2. 'Вася {}'.format('Пупкин')
3. f'Вася {"Пупкин"}'