LINUX.ORG.RU

Python 3.13

 , ,


1

6

После года разработки вышла новая стабильная версия интерпретируемого языка программирования Python 3.13. Релиз включает изменения в собственно языке и его стандартной библиотеке. К важнейшим изменениям относятся использование нового интерактивного интерпретатора по умолчанию, экспериментальная поддержка работы в режиме free-threaded (т. е. с отключением global interpreter lock) (PEP 703), и JIT-компилятор (PEP 744).

С этого релиза осуществлён переход на новый цикл релизов Python (Annual Release Cycle for Python, PEP 602), в связи со стремлением расширить период «полной поддержки» новых выпусков:

  • Python 3.9–3.12 имеют полтора года полной поддержки, за ними следует три с половиной года исправления брешей в безопасности.
  • Python 3.13 и более поздние релизы будут иметь два года полной поддержки и три года исправлений уязвимостей.

Продолжается работа по усовершенствованию сообщений об ошибках. Теперь traceback’и по умолчанию подсвечиваются цветом. Встроенная функция locals() теперь имеет определённую семантику для изменения возвращаемого меппинга (PEP 667), а параметры типов (typing.TypeVar, typing.ParamSpec, typing.TypeVarTuple) поддерживают значения по умолчанию (PEP 696).

Изменения стандартной библиотеки включают удаление устаревших API и модулей (aifc, audioop, cgi, cgitb, chunk, crypt, imghdr, mailcap, msilib, nis, nntplib, ossaudiodev, pipes, sndhdr, spwd, sunau, telnetlib, uu и xdrlib), а также привычные улучшения в области дружелюбия к пользователю и корректности. Несколько модулей исключены из поставки в связи с объявлением их устаревшими в Python 3.11 (PEP 594), в том числе инструмент и библиотека 2to3.

Из улучшений безопасности стоит отметить, что ssl.create_default_context() устанавливает флагами по умолчанию ssl.VERIFY_X509_PARTIAL_CHAIN и ssl.VERIFY_X509_STRICT.

Добавлена поддержка платформ: Apple iOS и Android теперь официально поддерживаемые платформы (tier 3) (PEP 730, 738). wasm32-wasi поддерживается на уровне tier 2, прекращена официальная поддержка wasm32-emscripten.

Для более основательного ознакомления с нововведениями релиза, обращайтесь к официальной документации (по библиотеке, по языку). Руководствуйтесь статьей «Переход на Python 3.13» для обновления своих проектов на новую версию языка. Также см. changelog.

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



Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 7)

Ответ на: комментарий от lbvf50txt

Если от такого положения вещей коробит, выход переходить в другие пространства. Например Go

Ну капец блин. Товарищ. Го из беты вышел во времена питона 3.3.

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

А анонсированный выход Go 2 сломает все что было.

Про Go 2 анонсировано, что его не будет.

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

Я как-то собеседовался, сказали можно тестовое задание на любом языке решать. Решил на Erlang. Удивились.

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

Напиши на своем C ютуб! Не можешь? — А на питоне можно!

И сколько вы ютубов написали?

akho
()
Ответ на: комментарий от alt-tab-let

Файл открывается или в бинарном или в текстовом режиме. Во втором случае ещё обычно можно указать кодировку, но хз как в Pytohn.

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

то есть, str без аргументов выдаёт b", а open без аргументов открывает, как строку? логично, чего же тут нелогичного то.

alt-tab-let ★★
()
Ответ на: комментарий от FishHook

Python ломает обратную совместимость в этом релизе. Когда ее последний раз ломал Go?

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

Ну капец блин. Товарищ. Го из беты вышел во времена питона 3.3.

Вы, прежде чем спорить, изучите историю Go. Кто его писал, зачем в 2009 году, когда уже сущестовал Python, Ruby, C, C++, Perl, Java, JS и так далее, создавали новый язык без классов и дженериков с минималистичным синтаксисом?

У языка программирования есть идея согласно которой развивается проект. В случае Golang это сохранение обратной совмистимости и простого, минималистичного синтаксиса. В этом был смысл создания нового языка: читабильный и понятный язык. Python нацелен на другие идеи, это другое пространство.

ХОТЯ! Zen of Python больше подходит к Go чем к текущему состоянию Python.

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!

lbvf50txt
()
Последнее исправление: lbvf50txt (всего исправлений: 2)

@Rodegast, @AntonI, @TechnoMag, только что я перечитывал Zen of Python и обратил внимание на дату 19-Aug-2004. Тогда Python 3 еще не было. Возможно, тот чистый, синтаксически стабильный Python из Zen - это Python 2.

Потом, я обнаружил что в 2020 от поддержки Python 2 отказались. С одной стороны все эти обновления похожи на какую-то мышинную возню и калйдоскоп, с другой стороны так по чуть чуть идет прогресс. Однозначно сказать нельзя.

lbvf50txt
()
Последнее исправление: lbvf50txt (всего исправлений: 2)
Ответ на: комментарий от alt-tab-let

И почему модераторы до сих пор не снесли всю ветку на три страницы где ты никак не поймёшь очевидных любому программисту вещей?

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

Мне то всё понятно стало сразу. Я сразу понял «пропал python».

На 3 страницы никто так и не сказал, что b" необходимы. Если бы разрабы не сломали, никто бы вообще этого не заметил, и не ходил бы и не просил. Не было бы общества «добавьте b" в str, все бы просто пользовались и всё.

Каких вещей я не понимаю? Что строки и байты разные? Это очевидно, и это вообще ничего не меняет. Или я не на одной волне с разработчиками? Тоже очевидно, я никогда не буду принимать изменения ради изменения, которое ломает что-то в одном случае и вообще ничего не даёт взамен. Это очевидно каждому здравомыслящему, что может взглянуть хоть немного дальше.

Короче не понял, каких конкретно вещей я не понял. Я выдвинул ровно один тезис, ровно 1. А мне какую-то ахинею, что строки и байты разные, про javы какие-то и прочее. Как это относится к тому, что сломали очевидное поведение ради ничего? И причём здесь очевидные программисты, это вопрос проектирования. Ради абстрактной правильности люди, которые это делали, просто не поняли ценностей python-а. Вон в пыхе до сих пор никто не ломает решения „тяп ляп две портянки нафига б“, и на 7 php можно исполнять код из php4 в духе „всё пишем в одну волну“. Вопрос „давать по рукам или нет за такое-то поведение“ это вообще вопрос философии. У python2 была одна философия, у python3 уже другая. Поэтому у нас есть ещё один „правильный“, „спроектированный“ и подобная ересь язык, но нет такого языка как python2.

Поэтому что я думаю о разрабах py2, то и думаю, это моё мнение, и я вообще не понимаю, какое отношение это имеет к программистам, программированию? Я написал то, что думаю о сломе такого языка, как py2 и изменению вектора философии, а в ответ слышу только какую-то ахинею, про строки, байты и прочее. Изначальный пост вообще не об этом, и я не знаю, как можно это не замечать и постоянно кидать мне что-то про строки, байты и какие-то тех. детали.

Если я считаю разработчиков условно маразматиками, это моё личное дело. И я не понимаю, как вообще технические детали могут на это повлиять или не повлиять, зачем мне их писать 3 страницы?

alt-tab-let ★★
()
Последнее исправление: alt-tab-let (всего исправлений: 1)
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.