Научете за вълнуващите функции в Python 3.12, които ще улеснят живота ви на разработчици.
Python планира да пусне версия 3.12 на езика през октомври 2023 г. Тази версия носи набор от вълнуващи функции и подобрения. Неговата цел е да подобри вашето изживяване при кодиране, като предложи по-ефективна и мощна платформа, която ви позволява да подобрите уменията си за кодиране.
1. Подобрени съобщения за грешка
Python непрекъснато подобрява своите съобщения за грешки в последните версии. The Изданието 3.11 въведе по-точни съобщения за грешка чрез посочване на точните позиции в редовете.
Python 3.12 извежда тези подобрения на следващото ниво със следните допълнения:
- Предложенията за липсващи модули („забравихте ли да импортирате X?“) вече включват модули от стандартната библиотека.
- Подобрени предложения за грешки за често срещани синтактични грешки, свързани с импортирането. Например, ако имате импортиране на p от m във вашия код грешка ще ви пита дали сте възнамерявали да пишете от м внос п.
- Грешките при импортиране за даден модул вече включват предложения от пространството на имената на импортирания модул.
- NameError предложенията вече също включват себе си добавя се към името, когато се повдига в рамките на екземпляр на клас. Например, ако името скорост не е дефинирано, съобщението за грешка ще предложи самостоятелна скорост като потенциална корекция. Това е особено полезно след пропускането себе си например променливите на инстанции са често срещан източник на грешки в екземплярите на класа.
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 позволи на инструментите за linting да откриват предварително широк набор от грешки. С всяка следваща версия системата от типове на Python се развива, за да обхване по-широк набор от случаи на употреба, предлагайки подобрени функции за въвеждане.
TypedDict
Python 3.12 представя използване на TypedDicts като източник за подсказване на ключови аргументи във функции. Това използва Unpack variadic generic, който версия 3.11 въведе.
Ето пример, илюстриращ тази функция:
класФилм(TypedDict):
име: ул
година: межд
дефФу(**kwargs: Разопаковане [филм]) -> Нито един: ...
В този случай функцията Фу може да получава ключови аргументи с имена и типове, които съответстват на съдържанието на Movie TypedDict: име от тип ул и година от тип вътр.
Това подобрение се оказва ценно при функции за подсказване на типа, които приемат незадължителни аргументи само за ключови думи без стойности по подразбиране.
Синтаксис на параметър тип
Python 3.12 въвежда по-сбит синтаксис за определяне на типове в общи класове, функции или псевдоними на типове.
Помислете за следното:
# старият метод
от писане импортиране TypeVar
_T = TypeVar("_T")
деффунк(a: _T, b: _T) -> _T:
...
# нов метод за параметър тип
деффунк[T](a: T, b: T) -> Т:
...
С новия синтаксис няма нужда да импортирате TypeVar изрично. Вместо това можете да използвате функция[T] синтаксис за указване на препратки към общ тип. Също така е възможно да се дефинират граници на типа, като например указване, че даден тип трябва да бъде един от група типове. Самите тези типове обаче не могат да бъдат общи. Пример за този синтаксис е func[T: (str, int)].
4. Събиране на боклук
В Python 3.12, механизъм за събиране на отпадъци (GC). се е променило. Преди това GC се изпълняваше всеки път, когато беше разпределен обект.
Въпреки това, започвайки от Python 3.12, GC работи изключително в рамките на eval прекъсвач механизъм в цикъла на байт код на Python. С други думи, той се изпълнява между изпълнението на един байт код и следващия.
Освен това, GC също се задейства, когато се извика механизмът за проверка на обработка на сигнали на CPython. Тази настройка позволява периодично събиране на боклук по време на продължителни извиквания към C разширения извън времето за изпълнение.
Разкриване на Python 3.12
Python 3.12 въвежда набор от вълнуващи функции и подобрения, революционизирайки изживяването при кодиране за вас. С подобрени съобщения за грешка, подобрени възможности за въвеждане, поддръжка за Linux Perf Profiler и оптимизирано събиране на отпадъци, Python 3.12 ви предоставя инструментите за писане на висококачествен код ефективно. Прегърнете силата на Python и издигнете уменията си за кодиране до нови висоти.