🐍 Python 3.6
- Что нового? - спросите вы.
И я, таки, отвечу:
PEP 498: форматированные строковые литералы.
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: подчёркивания в числовых литералах.
# 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: синтаксис аннотаций для переменных.
primes: List[int] = []
captain: str # Note: no initial value!
class Starship:
stats: ClassVar[Dict[str, int]] = {}
Улыбнулся от фразы:
Если разработчики Python не хотят делать его строго типизированным, то тогда кто-то другой это сделает. Например в php 7 и perl 6 можно включать проверку типов переменных.
PEP 525: асинхронные генераторы.
PEP 530: асинхронные компоновки.
PEP 506: Для упрощения генерации криптостойких псевдослучайных чисел добавлен модуль secrets.
Подробности | Тема на ЛОРе