LINUX.ORG.RU

Вышел Python 3.11

 


3

6

24 октября 2022 года объявлено о выпуске новой версии популярного языка программирования Python 3.11.

Python — это высокоуровневый язык программирования общего назначения с динамической строгой типизацией и автоматическим управлением памятью, ориентированный на повышение производительности разработчика, читаемости кода и его качества, а также на обеспечение переносимости написанных на нём программ (Википедия).

Основные улучшения заключаются в увеличении производительности интерпретатора CPython на 10-60% (в среднем в 1.25 раз по сравнению с Python 3.10). Этого удалось достичь в первую очередь за счёт оптимизации запуска интерпретатора, а также при помощи ускорения вызовов функций (в частности, за счёт оптимизации внутренней структуры фрейма; ранее фреймы содержали дополнительную информацию об отладке и управлении памятью).

Среди других изменений и улучшений можно отметить следующие:

  • Поддержка групп исключений – возможность создания и обработки нескольких несвязанных исключений одновременно (PEP 654).
  • Более точное указание местоположения ошибок в сообщениях об ошибках (PEP 657).
  • Различные улучшения и добавления в аннотациях типов, в частности, новая аннотация Self, указывающая, что метод возвращает объект данного класса (PEP 673).
  • Новый модуль стандартной библиотеки tomllib для работы с форматом TOML (PEP 680).
  • Множество улучшений в модулях стандартной библиотеки, в частности, asyncio, datetime, enum, functools, inspect, math и других. Например, в модуль math добавлены такие крайне полезные функции, как exp2 (возведение 2 в степень) и cbrt (кубический корень).

Кроме того, продолжена работа по удалению из стандартной библиотеки устаревших или мало используемых функций и модулей. В частности, помечены как устаревшие (для удаления в Python 3.13) следующие модули: pipes, crypt, ossaudiodev и некоторые другие не менее важные. Отметим, что для помеченных к удалению модулей имеются альтернативные реализации, либо их функционал (если он кому-то нужен) распределён среди оставшихся модулей. например, вместо модуля crypt рекомендуется использовать модуль hashlib, а вместо pipessubprocess.

В целом, в данный релиз вошло более 9500 исправлений и улучшений от множества разработчиков по всему миру. Ответственный за данный выпуск – Pablo Galindo Salgado.

>>> Список изменений от 26 октября



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

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

Не понятно, как из этого следует «поэтому и отступы пробелами»…

Как в армии, не важно правильно или нет, должно быть однообразно. Есть у языка условности, давайте уже следовать им.

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

совершенно верно, в команде должен быть определённый codestyle. Но в моём скриптике на 10 строк как хочу, так и горожу, лишь бы интерпретатор не сломался

vasilisk_lo
() автор топика
Ответ на: комментарий от vvn_black

а, ну теперь дошёл до меня твой мессадж... Ок, соглашусь

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

Создать еще один старый метод и вызывать из него новый, а защдно писать в лог, что мол, депрекейтед, поменяйте на…

AVL2 ★★★★★
()
Ответ на: комментарий от cvs-255

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

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

таким путем говнокод будет нарастать

Поэтому я и начал с замены :) Про добавление переменной упомянул только чтобы упредить твой вероятный аргумент «нет времени» :) Но ты половину текста проигнорировал :)

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

пинать соломенное чучело

если вы пейтон так называете

По-русски это называется «подмена тезиса». Ты критикуешь не Питон, а своё извращённое представление о нём :)

редактор в норме ничего не знает про пеп-8

Если тебе нужен редактор умнее тебя, смени редактор :) Spyder, вроде, по умолчанию настроен на 4 пробела.

чтобы не помереть от голода, бомб/пуль

Очень помогает сменить страну проживания. Серьёзно.

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

Создать еще один старый метод и вызывать из него новый

Кстати, какие от этого накладные расходы в Питоне, кто-нибудь измерял?

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

Зачем ООП и бейсики осилившим man grep?

Каковы стандартные действия с точки зрения ООП, если необходимо менять заголовок метода на несовместимый?

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

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

А во вторых эта ситуация явно не про расходы. Основные вызовы сразу меняются на новую функцию, а там уже остатки вызовов не влияющие на эффективность.

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

небольшие, поскольку контекст все равно загружается один раз

Спасибо.

А во вторых эта ситуация явно не про расходы. Основные вызовы сразу меняются на новую функцию, а там уже остатки вызовов не влияющие на эффективность.

Вопрос на тот случай, если неверно определили основные и пропустили их.

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

Каковы стандартные действия с точки зрения ООП, если необходимо менять заголовок метода на несовместимый?

Понятия не имею. Что, конечно, не предмет для гордости, но и радоваться жизни не мешает.

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

Вопрос на тот случай, если неверно определили основные и пропустили их.

Ну так в логе будет простыня из. Сообщений поменяйте вызов. И поменяете.

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

vim и есть ide пиши на ed да и ваще python может в repl и при отсутсвии readline - дажо idle не обязательно - достаточно консольного python

тока вопрос - зачем медведю такие туристы?

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

пут>м труда на благо страны проживания страна проживания меняется в приязненную помогаемому сторону/

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

«вс> строго наоборот»

см: https://en.wikipedia.org/wiki/Bullshit_Jobs

Bullshit Jobs: A Theory is a 2018 book by anthropologist David Graeber that postulates the existence of meaningless jobs and analyzes their societal harm. He contends that over half of societal work is pointless, and becomes psychologically destructive when paired with a work ethic that associates work with self-worth. Graeber describes five types of meaningless jobs, in which workers pretend their role is not as pointless or harmful as they know it to be: flunkies, goons, duct tapers, box tickers, and taskmasters. He argues that the association of labor with virtuous suffering is recent in human history, and proposes unions and universal basic income as a potential solution.

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

Если тебе надо считать аргументы, интерфейс метода говно.

no-dashi-v2 ★★
()
Ответ на: комментарий от Syncro

вы один ваш именнованный аргумент переименновали в объявлении

Это называется «сломать обратную совместимость», чем питунята занимаются постоянно, так что им не привыкать. В крайнем случае mypy найдет и покажет где поломалось, так что исправить несложно

no-dashi-v2 ★★
()
Ответ на: комментарий от question4

Само собой, просто в случае с Израилем, который из состояния войны не выходил никогда, пафос бегства от войны становится смешнее.

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

Сын, у которого PyCharm — это инструмент зарабатывания денег, недавно пожаловался, что JB отрубили в РФ «Code with me». Просто взяли и отрубили. Ну, это не говоря уже о том, что лицензию не купить.

Думется, что связываться с /теми, кто бежит впереди паровоза/ — такое себе решение.

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

какой, по-вашему, язык лишен рантайм неожиданностей

Любой, у которого решение математически выводимо. Товарищ под это дело бросил не очень любимую работу в ggl/abc и ушёл программировать на хаскеле нечто для схемотехники. Там, видите ли, цена ошибки программирования, дотащенной до рантайма, дороговато обходится.

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

Сваливаемся в оффтоп, но приведённый список «бессмысленных» профессий сильно удивил. А не позвать ли нам Дживза?

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

Ну, это не говоря уже о том, что лицензию не купить.

Я в такой же ситуации. Радует, что IntelliJ CE, PyCharm CE и Kotlin, всё-таки, не отберут. И fallback лицензии тоже.

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

Так-то, сеть и SaaS становится всё более неотъемлемым инструментом в работе. Для того, чтобы просто редактировать файлы исходников, есть Kate/Notepad++/...

И, да, вопрос насчет возможности отобрать офлайновые инструменты — тоже дискуссионный.

На оффлайновые инструменты вполне могут быть наложены рестрикции, аналогичные инструментам оффлайновым. Не застали времена, когда для скачивания какого-нибудь банального SSL-я с криптостойкими алгоритмами требовалось подтвердить, что ты не с Кубы, Северной Кореи и далее по списку? Онлайновые инструменты от оффлайновых отличаются только бо́льшей степенью автоматизированного оперативного контроля, не более того.

AlexM ★★★★★
()
Последнее исправление: AlexM (всего исправлений: 3)
Ответ на: комментарий от Syncro

кроме таба может быть настройка «таб в четыре/два пробела», причем хитрый редактор может вам табы обоих типов в файле показать одинаково, а потом оно сломается только при нажатии кнопки пользователем, ну или даже не сломается, а кусок элса отъедет в логике исполнения в блок более верхнего уровня.

Нет этой проблемы вообще. В настройках редактора указываешь «1 таб это 4 пробела».

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

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

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

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

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

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

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

к чему все эти истории про слабоумных кодеров?

вы определитесь легкий язык для начинающих, или хардкор для ковбоев и фукин гениев.

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

С ним бесполезно спорить. Человек, живёт ещё где-то в 80-х, использует какой-то адовый редактор, который ему постоянно заменяет без спроса табы на пробелы или наоборот (хорошо ещё, что echo Hello не заменяет на rm -rf /, а ведь мог бы!), считает, что использовать PEP-8 и настроенный CI/CD и/или commit hooks - не решение, т.к. всё это должно быть встроено в язык.

Короче, ему просто по приколу троллить с какими-то дурацкими придирками.

Типа того, что Python нужен для организации утечки мозгов (почему?), тогда как на самом деле, Java придумывали для того, чтобы разработчики были максимально взаимозаменяемы, об этом открыто писалось, во всяком случае, все 90-е были забиты рекламой Sun, которая это подчеркивала. Python тогда ещё под стол пешком ходил.

Но Java - хорошо, а Python - плохо. Логикой здесь и не пахнет.

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

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

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

к чему все эти истории про слабоумных кодеров?

вы определитесь легкий язык для начинающих, или хардкор для ковбоев и фукин гениев.

начинающие по определению пишут програмки для вычисления квадратного корня. если эти гении умудрятся там намешать табы с пробелами так, чтобы это сложно было найти в 20 строчках, то такие кодеры не нужны. а если для тебя сложно придерживаться дисциплины – а это вопрос элементарной дисциплины – то не занимайся этим.

Если пробел или таб – это значимый символ в ЯП, то он ничем не отличается от любого другого символа в синтаксисе этого ЯП. В питоне, например, для строк используются как одинарные кавычки, так и двойные. Но никто не жалуется, что их нельзя миксовать типа

foo = "abc'
bar = 'abc"

Разница только в том, что кавычки это видимый символ, а табы и пробелы нет (хотя у умных кодеров настроено отображение пробелов в редакторе).

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

Разница только в том, что кавычки это видимый символ, а табы и пробелы нет

Это очень существенная разница.

хотя у умных кодеров настроено отображение пробелов в редакторе

Замусоривает вид.

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

Разница только в том, что кавычки это видимый символ, а табы и пробелы нет

Это очень существенная разница.

нет

хотя у умных кодеров настроено отображение пробелов в редакторе

Замусоривает вид.

мне нет, видимо, вопрос вкуса

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

Замусоривает вид.

Обычно отображение пробелов используется не постоянно, а только при выделении куска кода.

vvn_black ★★★★★
()

либо их функциональность

Не экономь буквы.

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

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

Такая ситуация может быть только если есть динамический импорт сломанного кода. Например, в теле функции.

С тем же успехом я могу в С/С++ использовать сломанную dll и ругаться, что язык плохой.

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

Тут уже говорили, что пока что никто на Python писать не заставляет.

рынок труда организован с поддержанием дефицита нормальной работы, т.е. чтобы не помереть от голода, бомб/пуль и т.п. высока вероятность, что вас заставят заниматься именно пейтоном, именно на проекте со сломанными везде оступами, кодировкми, енваерментом и необходимостью фиксить их продакшене

Мне кажется, что тебе лучше направить энергию на то, чтобы стать более квалифицированным специалистом. Работы очень много.

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

рыначку нужны не квалифицированные, а виноватые, вот в том числе через слом продакшина на пипоне

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

нет, пипон допускает любые настройки отступов для любого блока на сколько я помню, т.е. открываешь иф и шпаришь в 2 пробела без проблем, а потом редактор со смарттабами какими-нибудь за тебя все препишет или интерпретатор сломается когда кто-то в этот блок допишет код с другой табуляцией

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

хотя у умных кодеров настроено отображение пробелов в редакторе

Замусоривает вид.

мне нет, видимо, вопрос вкуса

С какого редактора начинал? Я — с ChiWriter, и всюду привык включать отображение пробелов.

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

Не забывайте, что ЯП для того, чтобы писать код, а не читать.

Writeonly кодер детектид

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