LINUX.ORG.RU

Python 3.6

 ,


4

5

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

  • 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 ★★★ ()

Ух ты, годнота-то какая, лепота.

anonymous ()

В параллелизм научился?

Hertz ★★★★★ ()

typing стабилизировали, щастье.

tailgunner ★★★★★ ()

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

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

meequz ★★ ()

PEP 498: форматированные строковые литералы.

Отлично.

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

Что это такое? Я нифига не понял из описания, пятый способ форматирования строк?

loz ★★★★★ ()

Годно. Литералы тоже понравились.

FIL ★★★★ ()
Ответ на: комментарий от 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)
Ответ на: комментарий от intelfx

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

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

Это не проблемы, олень, это слишком много фич, что не сильно pythonic, где по дзену «существует способ сделать что-то, и этот способ один».

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

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

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

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

Интересно, каков процент софтин, написанных на питоне и находящихся в активной разработке, используют 3 ветку, а не 2?

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

Слишком много фич типа невозможности копировать код из редактора в репл, отсутствие нормальных лямбд, GIL или что это вобще такое?

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

Нет, просто в 3.6 порядок обхода Dict через итератор соответствует очередности вставок в словарь.

anon1984 ()
Ответ на: комментарий от hateyoufeel

Чем оно лучше PHP?

Тем что не PHP. Это же очевидно!

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

Я нифига не понял из описания, пятый способ форматирования строк?

Это типа шаблонизатора. В общем очередное не нужно.

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

И - Иммутабельность

As Daniel noted, this behaviour is in accordance with the language definition.

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

Сейчас бы в 2017 код повставлять из редакторатв репл, да чтобы с лямбдами и без GIL…

anonymous ()
Ответ на: комментарий от Rodegast

В общем очередное не нужно.

Зато модно и молодежно. Попиши на ES6, Сишарпе, Скале, всегда так делать будешь.

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

А как ты тайпинг пользуешь? Есть какой-то профит прямо сейчас?

outtaspace ★★ ()

чё только не придумают, лишь бы 2.7 не пользоваться

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

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

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

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

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

От самого typing, AFAIK, и не должно быть профита

В IDE все станет намного красочнее.

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

Если 1) твоя IDE понимает аннотации 2) ты эти аннотации расставишь.

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

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

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

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

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

anon1984 ()

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

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

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

Прочитать книгу Лутца, 5 издание.

Ты не сравнивай верстку и код, это разные вещи.

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

Лутц это куча воды, которая калечит.

anonymous ()

Asynchronous Comprehensions
асинхронные компоновки

Классный перевод.

anon1984 ()

Порядок определения атрибутов класса теперь сохраняется ... Порядок элементов в **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 ★★★★★ ()
Ответ на: комментарий от intelfx

внутри фигурных скобок — код на питоне

круто, теперь для форматирования можно использовать list comprehension, например и обходится без лишней переменной.

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

Ты просто ретроград. Половина из читающих новость подкатили штаны от радости.

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

Половина из читающих новость подкатили штаны от радости.

Просто некоторые никак не могут забыть свою бытность менеджера по клинингу.

mashina ★★★★★ ()

Хороший язык программирования и фичи интересные.

Im_not_a_robot ()
Ответ на: комментарий от anonymous

Что посоветуешь почитать?

inb4: doc.python.org

anonymous ()

Вроде столько всего «улучшили», а язычок как был унылым, невыразительным и дубовым, так и остался.

anonymous ()

Асинхронность, асинхронность. Они бы лучше шлем нашли потоки нормальные сделали.

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

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

1) OrderedDict или аналогичный по поведению

2) это только в CPython

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

Смысл? Язык не про ресурсоемкие вычисления, а там где они нужны, есть Си-расширения, которые замечательно работают без GIL.

anon1984 ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.