Выйшаў новы стабільны рэліз папулярнай мовы праграмавання Python.
Python – высокаўзроўневая мова праграмавання агульнага прызначэння, арыентаваная на павышэнне прадукцыйнасці распрацоўніка і чытальнасці кода. Асноўныя рысы - дынамічная тыпізацыя, аўтаматычнае кіраванне памяццю, поўная інтраспекцыя, механізм апрацоўкі выключэнняў, падтрымка шматструменных вылічэнняў, высокаўзроўневыя структуры дадзеных.
Python - стабільная і распаўсюджаная мова. Ён выкарыстоўваецца ў многіх праектах і ў розных якасцях: як асноўная мова праграмавання або для стварэння пашырэнняў і інтэграцыі прыкладанняў. Асноўныя галіны прымянення: вэб-распрацоўка, машыннае навучанне і аналіз даных, аўтаматызацыя і сістэмнае адміністраванне. У сапраўдны момант Python займае трэцяе месца ў рэйтынгу. ЦІОБЕ.
Асноўныя змены:
Новы высокапрадукцыйны сінтаксічны аналізатар на базе граматык PEG.
У новай версіі бягучы парсер Python на аснове граматык LL(1)(КС-граматыка) заменены на новы высокапрадукцыйны і стабільны сінтаксічны аналізатар на базе PEG (РВ-граматыка). Аналізатары для моў, прадстаўленых КС-граматыкамі, такія як LR-аналізатары, патрабуюць асаблівага кроку лексічнага аналізу, які разбівае ўваходныя дадзеныя ў адпаведнасці з прабеламі, пунктуацыяй і гэтак далей. Гэта неабходна, бо гэтыя аналізатары выкарыстоўваюць папярэдні аналіз для апрацоўкі некаторых КС-граматык у лінейны час. РВ-граматыкі не патрабуюць асобнага кроку лексічнага аналізу, а правілы для яго могуць быць закладзены разам з іншымі правіламі граматыкі.
Новыя аператары і функцыі
Ва ўбудаваны клас dict дададзены два новых аператара, | для зліцця слоўнікаў і |= для абнаўлення.
У клас str дададзены дзве новыя функцыі: str.removeprefix(прэфікс) і str.removesuffix(суфікс).
Падказка тыпу для ўбудаваных тыпаў калекцый
У гэтым рэлізе ўключаная падтрымка сінтаксісу генератараў ва ўсіх стандартных калекцыях, даступных у наш час.
def read_blog_tags(tags:list[str]) -> None:
for tag in tags:
print("Tag Name", tag)
іншыя змены
-
PEP 573 Доступ да стану модуля з дапамогай метадаў пашырэння C
-
PEP 593 Гнуткія функцыі і зменныя анатацыі
-
PEP 602 Python пераходзіць на штогадовыя стабільныя рэлізы
-
PEP 614 Змякчальныя граматычныя абмежаванні на дэкаратары
-
PEP 615 Падтрымка базы даных IANA па часавых паясах у стандартнай бібліятэцы
-
BPO 38379 зборка смецця не блакуецца на адноўленых аб'ектах
-
BPO 38692 os.pidfd_open, для кіравання працэсамі без гонак і сігналаў;
-
BPO 39926 падтрымка Unicode абноўлена да версіі 13.0.0
-
BPO 1635741, пры шматразовай ініцыялізацыі Python у адным і тым жа працэсе, больш не адбываецца ўцечка памяці
-
Калекцыі Python (range, tuple, set, frozenset, list, dict) паскораны з дапамогай вектарнага выкліку PEP 590
-
Некаторыя модулі Python (_abc, audioop, _bz2, _codecs, _contextvars, _crypt, _functools, _json, _locale, operator, рэсурс, time, _weakref) зараз выкарыстоўваюць шматфазную ініцыялізацыю, як вызначана ў PEP 489
-
Шэраг стандартных модуляў бібліятэк (audioop, ast, grp, _hashlib, pwd, _posixsubprocess, random, select, struct, termios, zlib) зараз выкарыстоўваюць стабільны ABI, вызначаны PEP 384.
Крыніца: linux.org.ru