Узнайте об интересных функциях Python 3.12, которые облегчат вам жизнь разработчиков.

Python планирует выпустить версию 3.12 языка в октябре 2023 года. Эта версия содержит множество захватывающих функций и улучшений. Его цель — улучшить ваш опыт кодирования, предлагая более эффективную и мощную платформу, позволяющую вам улучшить свои навыки кодирования.

1. Расширенные сообщения об ошибках

Python постоянно улучшал свои сообщения об ошибках в последних версиях. В версии 3.11 представлены более точные сообщения об ошибках. указывая точные позиции в строках.

Python 3.12 выводит эти улучшения на новый уровень со следующими дополнениями:

  • Предложения по отсутствующим модулям («вы забыли импортировать X?») теперь охватывают модули из стандартной библиотеки.
  • Улучшены предложения по ошибкам для распространенных синтаксических ошибок, связанных с импортом. Например, если у вас есть импортировать p из m в вашем коде ошибка предложит спросить, намеревались ли вы написать из м импорт р.
  • Ошибки импорта для данного модуля теперь включают предложения из пространства имен импортированного модуля.
  • instagram viewer
  • ИмяОррор предложения теперь также включают себя добавляется к имени при вызове в экземпляре класса. Например, если имя скорость не определено, в сообщении об ошибке будет предложено собственная скорость как потенциальная коррекция. Это особенно полезно, поскольку опускание себя например, переменные экземпляра являются распространенным источником ошибок в экземплярах класса.

2. Поддержка Linux Perf Profiler

Широко используемый инструмент профилировщика Linux, производительность, теперь может работать с программами Python 3.12. В прошлом он был сосредоточен только на отслеживании операций уровня C в среде выполнения Python.

В Python 3.12 теперь вы можете активировать perf для сбора сведений о программах Python. Вы можете активировать его либо на уровне среды, либо в программе Python с помощью команды sys.activate_stack_trampoline функция.

3. Улучшения подсказки типа

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

TypedDict

Python 3.12 представляет использование TypedDicts как источник подсказок аргументов ключевых слов в функциях. При этом используется универсальный вариативный файл Unpack, представленный в версии 3.11.

Вот пример, иллюстрирующий эту функцию:

сортФильм(Типированный Дикт):
название: ул.
год: инт

деффу(**kwargs: Распаковать[Фильм]) -> Никто: ...

В этом случае функция фу может получать аргументы ключевого слова с именами и типами, которые совпадают с содержимым Movie TypedDict: имя типа ул и год типа инт.

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

Синтаксис параметра типа

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

Рассмотрим следующее:

# старый метод
от печатание Импортировать ТипВар
_T = ТипПеременная("_Т")
деффункция(а: _Т, б: _Т) -> _Т:
...
# новый метод параметра типа
деффункция[Т](а: Т, б: Т) -> Т:
...

С новым синтаксисом нет необходимости явно импортировать TypeVar. Вместо этого вы можете использовать функция [T] синтаксис для указания ссылок универсального типа. Также возможно определить границы типа, например указать, что тип должен быть одним из группы типов. Однако сами эти типы не могут быть универсальными. Примером этого синтаксиса является func[T: (str, int)].

4. Вывоз мусора

В Python 3.12 механизм сборки мусора (GC) изменилось. Ранее сборщик мусора запускался всякий раз, когда выделялся объект.

Однако, начиная с Python 3.12, сборщик мусора работает исключительно в оценочный выключатель механизм в цикле байт-кода Python. Другими словами, он выполняется между выполнением одного байт-кода и выполнением следующего.

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

Представляем Python 3.12

Python 3.12 представляет ряд интересных функций и улучшений, которые революционизируют ваш опыт кодирования. Благодаря расширенным сообщениям об ошибках, улучшенным возможностям набора текста, поддержке Linux Perf Profiler и оптимизированная сборка мусора, Python 3.12 предоставляет вам инструменты для написания высококачественного кода эффективно. Воспользуйтесь мощью Python и поднимите свои навыки программирования на новый уровень.