LINUX.ORG.RU

Python 3.6

 ,


4

6

Основные изменения

  • PEP 498: форматированные строковые литералы.
  • PEP 515: подчёркивания в числовых литералах.
  • PEP 526: синтаксис аннотаций для переменных.
  • PEP 525: асинхронные генераторы.
  • PEP 530: асинхронные компоновки.

CPython

  • Новая реализация словарей, использующая более быстрое и компактное представление аналогично тому, как это сделано в PyPy. Это позволило сократить количество памяти, выделяемой под словари, на 20-25% по сравнению с Python 3.5.
  • Добавлена возможность управлять созданием подклассов без использования метаклассов.
  • Порядок определения атрибутов класса теперь сохраняется.
  • Порядок элементов в **kwargs теперь соответствует порядку, в котором именованные аргументы были переданы при вызове функции.
  • Новая переменная окружения PYTHONMALLOC, предназначенная для отслеживания операций выделения памяти и ошибок доступа.
  • Добавлена поддержка DTrace и SystemTap.

Стандартная библиотека

Безопасность

  • Для упрощения генерации криптостойких псевдослучайных чисел добавлен модуль secrets.
  • Вызов os.urandom() на linux-системах теперь блокируется, пока пул энтропии не будет проинициализирован.
  • Модули hashlib и ssl теперь поддерживают OpenSSL 1.1.0.
  • Улучшены настройки по умолчанию для модуля ssl.
  • В модуль hashlib добавлены поддержка алгоритмов BLAKE2, SHA-3 и SHAKE, а также функция scrypt().

>>> Подробности

★★★★★

Проверено: Shaman007 ()

Вызов os.urandom() на linux-системах теперь блокируется, пока пул энтропии не будет проинициализирован.

Теперь поделка поцеринга будет давать лаги в 10 минут на питоновских юнитах.

steemandlinux ★★ ()

асинхронные генераторы.

да неужели. А то синтаксис их использования ввели, а сами генераторы надо было велосипедить

подчёркивания в числовых литералах.

не уверен нравится ли мне это, но ладно, меньше проверок

Dred ★★★ ()

Порядок элементов в **kwargs теперь соответствует порядку, в котором именованные аргументы были переданы при вызове функции

Т.е. теперь kwargs будет иметь тип OrderedDict?

meequz ★★ ()
Ответ на: комментарий от loz

Да. Способ форматирования строк а-ля sh (и ещё куча языков), который позволяет одновременно не писать название каждой переменной трижды и не заниматься ручным слежением за порядком.

  • было 1: "%d %d %d" % (1, 2, 3)
  • было 2: "{var1} {var2} {var3}".format(var1 = expr1, var2 = expr2, var3 = expr3)
  • стало: f"{expr1} {expr2} {expr3}", внутри фигурных скобок — код на питоне (произвольные выражения)
intelfx ★★★★★ ()
Последнее исправление: intelfx (всего исправлений: 5)
Ответ на: комментарий от loz

Ааа, в вашем питоне все еще такие проблемы не могут решить, лол

Вроде того. Впрочем, я не являюсь обожателем сабжа и меня это не сильно задевает :)

intelfx ★★★★★ ()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от outtaspace

Я - никак, это фантомные боли (я и Python сейчас не использую). Но 2 года назад я бы убил ради typing и MyPy.

Есть какой-то профит прямо сейчас?

От самого typing, AFAIK, и не должно быть профита, но от MyPy + typing с полгода назад толк уже был - _если_ тебя не устраивает динамическая типизация.

tailgunner ★★★★★ ()
Ответ на: комментарий от tailgunner

1) твоя IDE понимает аннотации

У JetBrains есть, остальные подтянутся со временем.

2) ты эти аннотации расставишь.

См. (1), и опыт джаваскриптеров, в общем, тут без вариантов.

anon1984 ()

когда начиал знакомство с html то сделав на narod сайт практически словил все азы и понял что к чему в веб верстке само собой с цсс и т.д. потом любой сай смог сверстать не считая скриптов.

и мне интересно что такого нужно сделать на питон или любом другом яп, что сделав это освоить программирования азы навсегда?

dima1981 ()

Порядок определения атрибутов класса теперь сохраняется ... Порядок элементов в **kwargs теперь соответствует порядку...

Неужели питон скатывается в тотальное дерьмо...

The order-preserving aspect of this new implementation is considered an implementation detail and should not be relied upon (this may change in the future, but it is desired to have this new dict implementation in the language for a few releases before changing the language spec to mandate order-preserving semantics for all current and future Python implementations; this also helps preserve backwards-compatibility with older versions of the language where random iteration order is still in effect, e.g. Python 3.5).

да, ещё один пых на подходе. Теперь уже и ruby выглядит не такой ужасной альтернативой питону.

mashina ★★★★★ ()
Ответ на: комментарий от intelfx

стало: f"{expr1} {expr2} {expr3}", внутри фигурных скобок — код на питоне (произвольные выражения)

Осталось добавить поддержку <?python ... ?> и всё станет совсем чудесно.

mashina ★★★★★ ()