Друзья, в октябре этого года выходит версия Python π 3.14. Хотим рассказать о том, что в ней нового! 😎
✅ Python стал еще быстрее. Обновившись до новой версии, можно увеличить прирост производительности своих программ до 30%.
✅ Новые сообщения об ошибках. Если раньше приходилось помнить о том, что значит та или иная ошибка, то теперь этого делать не нужно, так как ошибки стали содержать более детальную информацию.
Приведенный ниже код:
в Python 3.13 приводит к возбуждению исключения:
в Python 3.14 приводит к возбуждению исключения:
✅ Аннотации больше не вычисляются немедленно. Это происходит по мере необходимости с помощью специальных функций. Такое изменение призвано сделать работу с аннотациями более быстрой и удобной.
✅ Добавлена поддержка ZStandard. Это способ быстрого сжатия данных, который лучше и производительнее, чем обычный zip.
✅ При обработке нескольких типов исключений в одном блоке
Приведенный ниже код:
в Python 3.13 приводит к возбуждению исключения:
в то время как в Python 3.14 выводит:
✅ При использовании в блоке
✅ Появится новый вид строк — t-строки. В отличие от f-строк, которые сразу подставляют значения в соответствующие заполнители, t-строки хранят их отдельно и позволяют изменять в процессе формирования строки. Этот вид строк создан с целью обеспечения большей безопасности, например, при формировании HTML-кода или SQL-запросов.
Было внесено и множество других изменений, как крупных, так и не очень:
🟢 в новой версии модули
🟢 появился параметр
🟢 был улучшен экспериментальный режим без GIL
🟢 значительно обновлен Python C API
Ознакомиться со всеми изменениями Python 3.14 можно в документации по ссылке.
Ставьте реакцию:
🔥 — если любите накатывать обновления сразу после выхода
👀 — если ждете, пока выловят все ошибки
#поколениеpython #python #python314
✅ Python стал еще быстрее. Обновившись до новой версии, можно увеличить прирост производительности своих программ до 30%.
✅ Новые сообщения об ошибках. Если раньше приходилось помнить о том, что значит та или иная ошибка, то теперь этого делать не нужно, так как ошибки стали содержать более детальную информацию.
Приведенный ниже код:
s = set()
seq = [1, 2, 3]
s.add(seq)
в Python 3.13 приводит к возбуждению исключения:
TypeError: unhashable type: 'list'
в Python 3.14 приводит к возбуждению исключения:
TypeError: cannot use 'list' as a set element (unhashable type: 'list')
✅ Аннотации больше не вычисляются немедленно. Это происходит по мере необходимости с помощью специальных функций. Такое изменение призвано сделать работу с аннотациями более быстрой и удобной.
✅ Добавлена поддержка ZStandard. Это способ быстрого сжатия данных, который лучше и производительнее, чем обычный zip.
✅ При обработке нескольких типов исключений в одном блоке
except убрали необходимость заключать исключения в скобки.Приведенный ниже код:
try:
raise ValueError
except TypeError, ValueError:
print(‘Исключение обработано’)
в Python 3.13 приводит к возбуждению исключения:
SyntaxError: multiple exception types must be parenthesized
в то время как в Python 3.14 выводит:
Исключение обработано
✅ При использовании в блоке
finally одного из операторов return, break или continue теперь всплывает предупреждение SyntaxWarning.✅ Появится новый вид строк — t-строки. В отличие от f-строк, которые сразу подставляют значения в соответствующие заполнители, t-строки хранят их отдельно и позволяют изменять в процессе формирования строки. Этот вид строк создан с целью обеспечения большей безопасности, например, при формировании HTML-кода или SQL-запросов.
Было внесено и множество других изменений, как крупных, так и не очень:
unittest и calendar научились выводить цветной текстstrict у функции map(), который может запретить обрабатывать коллекции разного размераОзнакомиться со всеми изменениями Python 3.14 можно в документации по ссылке.
Ставьте реакцию:
🔥 — если любите накатывать обновления сразу после выхода
👀 — если ждете, пока выловят все ошибки
#поколениеpython #python #python314
Please open Telegram to view this post
VIEW IN TELEGRAM
15🔥139👀91❤20 9👍5 5✍3
Друзья, не так давно вышла новая версия Python 3.14, о новых возможностях которой мы кратко рассказывали в этом посте. Сегодня хотим рассказать подробнее об отложенных вычислениях аннотаций. 🖥
▶️ Чтобы в аннотациях указать экземпляр пользовательского типа данных, необходимо использовать имя этого типа. Например, в приведенном ниже коде для переменной
❗️ Однако при попытке указать похожую аннотацию в одном из методов в классе мы получим ошибку.
Приведенный ниже код:
приводит к возбуждению исключения:
💬 Такое поведение объясняется тем, что весь код в теле класса выполняется до создания самого класса:
1️⃣ создаются все атрибуты и методы
2️⃣ создается класс
3️⃣ атрибуты и методы связываются с этим классом
▶️ Аннотации, в свою очередь, вычисляются сразу при создании объектов. Поэтому, когда мы указываем подобную аннотацию, происходит ошибка: ведь класс еще не существует. Чтобы правильно указать аннотацию, имя класса необходимо заключить в кавычки:
🟢 В Python 3.14 поведение изменилось и вычисление аннотаций стало отложенным. Теперь они вычисляются не в момент создания объекта, а только в момент обращения к аннотации, например, с помощью атрибута
Приведенный ниже код:
в Python 3.14 выводит:
😉 😉 😉 😚 😉 Подробнее о нововведениях в Python 3.14 расскажем в планируемом курсе для самураев. Подпишитесь на новости о курсе на нашем сайте, чтобы первым узнать о его выходе.
Ставьте реакцию:
🔥 — если уже опробовали Python 3.14
👀 — если пользуетесь более старыми версиями
#полезныйматериал #python314 #поколениеpython
cat ожидается значение в виде экземпляра пользовательского класса Cat:class Cat:
pass
cat: Cat
Приведенный ниже код:
class Cat:
def method(self) -> Cat:
return self
приводит к возбуждению исключения:
NameError: name 'Cat' is not defined
class Cat:
def method(self) -> 'Cat':
return self
__annotations__. Поэтому в новой версии Python стало возможным указывать аннотации более гибко.Приведенный ниже код:
class Cat:
def method(self) -> Cat:
return self
print(Cat.method.__annotations__)
в Python 3.14 выводит:
{'return': <class '__main__.Cat'>}Ставьте реакцию:
🔥 — если уже опробовали Python 3.14
👀 — если пользуетесь более старыми версиями
#полезныйматериал #python314 #поколениеpython
Please open Telegram to view this post
VIEW IN TELEGRAM
👀91🔥31 11❤8 4❤🔥3🤝2🙉2👨💻1