Python е език за програмиране от високо ниво.
След една година на развитие, Беше обявено пускането на стабилната версия а също и началото на фазата на алфа тестване на езика за програмиране Python 3.12 и Python 3.13 (съответно). Споменава се, че този нов клон на Python 3.12 ще се поддържа за година и половина, след което за още три години и половина ще се генерират корекции за премахване на уязвимостите.
Новата версия на Python 3.12, която е представена, идва с подобрения в гъвкавост на f-струновия анализ. С това подобрение сега много ограничения могат да бъдат оставени настрана, тъй като например вече можете да съдържате всеки валиден израз в Python, включително многоредови изрази, коментари, обратни наклонени черти и последователности за избягване на Unicode. Освен това вътрешните низове вече позволяват повторно използване на същите кавички, т.е. двойните кавички вече могат да се използват повторно вътре без да се налага да се променят в единични кавички.
Например:
f"""{f'''{f'{f"{1+1}"}'}'''}"""
Вече е възможно произволно влагане:
f"{f"{f"{f"{f"{f"{1+1}"}"}"}"}"}"
Друга от промените, която се откроява, е поддръжка за изолирани подинтерпретатори и отделни глобални заключвания, които са предназначени да повишат ефективността на използването на ресурсите в многоядрени системи, тъй като за различни интерпретатори в рамките на един процес CPython позволява няколко интерпретатора да работят едновременно в един процес. В сегашния си вид функцията в момента е достъпна само чрез C-API (поддръжката на Python API ще се появи в следващия голям клон).
В допълнение към това се подчертава също, чеИнформативното съдържание на съобщенията за грешки е увеличено и наборът от изключения е разширен, предлагайки препоръки за отстраняване на печатни грешки. Например, сега се показват предложения за импортиране на забравени стандартни библиотечни модули и предложения за префикс „сам“.
Добавена е възможност за използване на буферния протокол в Python код. Класове, които предоставят метод "__buffer__()", вече могат да се използват като типове, които работят директно върху двоични данни в паметта.
Модулът sys.monitoring се предлага за отстраняване на грешки и профилиране, което ви позволява да наблюдавате събития в CPython като извиквания, връщания на функции, изпълнение на произволни редове код, изключения и преходи с минимални разходи.
Интерпретаторът реализира поддръжка за подсистемата за производителност на ядрото на Linux, което позволява да се определят имена на функции на Python при профилиране с помощта на помощната програма за производителност (преди това само имената на C функции бяха определени в следи).
По отношение на подобренията в производителността се споменава, че оптимизациите продължават, с който Получено е общо увеличение на производителността, оценено на 5%., беше добавено също експериментална поддръжка за двоичния оптимизатор BOLT към процеса на изграждане, увеличавайки производителността с 1-5%, докато производителността на пакета asyncio се е подобрила значително (някои тестове показват 75% ускоряване).
Реализирано е вградено разширяване на разбирането на списък, което ускорява работата с разбиране на списък с до два пъти (за код, който активно използва разбиране на списък, тестването показа общо увеличение на производителността от 11%).
За да подобрите сигурността, вградени реализации на Алгоритмите SHA1, SHA3, SHA2-384, SHA2-512 и MD5 в hashlib са заменени с официално проверени опции от проекта HACL* (вградените реализации се използват само ако OpenSSL не е наличен).
От други промени които се открояват:
- Модулът има разширена поддръжка за Windows.
- Python прилага защита от препълване на стека.
Създаването на класа asyncio.Task е ускорено. - Размерът на Unicode обектите е намален с 8 до 16 байта.
- Операциите с регулярни изрази re.sub(), re.subn() и re.Pattern са ускорени.
- Изпълнението на проверки на isinstance() за някои протоколи е ускорено от 2 до 20 пъти.
- Значително (в някои тестове до 64%) функциите tokenize.tokenize() и tokenize.generate_tokens() са ускорени.
- Зареждането на атрибути и извикването на метода super() са ускорени.
- Предложен е нов, по-компактен синтаксис за анотации на типове за общи класове и функции.
- Модулът на уеб браузъра вече не поддържа по-стари браузъри, включително Grail, Mosaic, Netscape, Galeon, Skipstone, Iceape, Firebird и Firefox до версия 36.
- В подготовка за бъдещи оптимизации вътрешното представяне на цели числа е променено.
Не на последно място, както споменахме, започна алфа тестване на Python 3.13, в което се появи режим на компилация CPython без глобално заключване на интерпретатора (GIL, Глобално заключване на интерпретатора).
Клонът Python 3.13 ще бъде в алфа версия за седем месеца, по време на който ще се добавят нови функции и ще се коригират грешки в съответствие с новия график за разработка, работата по нов клон започва пет месеца преди пускането на предишния клон и докато следващата версия достигне алфа етапа на тестване.
След това бета версиите ще бъдат тествани в продължение на три месеца, през които добавянето на нови функции ще бъде забранено и цялото внимание ще бъде обърнато на отстраняването на грешки. През последните два месеца преди освобождаването клонът ще бъде в етап на кандидат за освобождаване, където ще се извърши окончателно стабилизиране.
Накрая да вие се интересувате да научите повече за това, можете да проверите подробностите в следваща връзка.