Välja on saanud uus stabiilne versioon populaarsest programmeerimiskeelest Python.
Python on kõrgetasemeline üldotstarbeline programmeerimiskeel, mis keskendub arendaja tootlikkuse ja koodi loetavuse parandamisele. Peamised omadused on dünaamiline tüpiseerimine, automaatne mäluhalduse, täielik introspektsioon, erandite käsitlemise mehhanism, mitme lõime toetamine ning kõrgetasemelised andmestruktuurid.
Python on stabiilne ja laialdaselt levinud keel. Seda kasutatakse paljudes projektides ja erinevates rollides: peamise programmeerimiskeelena või rakenduste laiendamiseks ja integreerimiseks. Peamised rakendusvaldkonnad: veebiarendus, masinõpe ja andmete analüüs, automatiseerimine ja süsteemiadministreerimine. Hetkel on Python kolmandal kohal reitingus TIOBE.
Peamised muudatused:
Uus kõrgtehnoloogiline süntaksianalüsaator, mis põhineb PEG grammatikal.
Uues versioonis on praegune Python'i parsiar, mis põhineb LL(1) (Konteksti-vaba grammatika), asendatud uue kõrge jõudlusega ja stabiilse süntaksianalüsaatoriga, mis põhineb PEG (Konteksti-kohane grammatika). Konteksi-vabade grammatikate jaoks mõeldud analüsaatorid, nagu LR analüsaatorid, vajavad eraldi leksikaalanalüüsi sammu, mis jagab sisendi vastavalt tühikutele, kirjavahemärkidele jne. See on vajalik, kuna need analüsaatorid kasutavad eelanalüüsi teatud konteksti-vabade grammatikate töötlemiseks lineaarajas. Rügamatika ei vaja eraldi leksikaalanalüüsi sammu, ja reeglid selle jaoks võib paigutada koos teiste grammatikareeglitega.
Uued operaatorid ja funktsioonid
Sisseehitatud klassi dict on lisatud kaks uut operaatorit: | sõnaraamatute ühendamiseks ja |= uuendamiseks.
Klassi str on lisatud kaks uut funktsiooni: str.removeprefix(eelist) ja str.removesuffix(lõpp).
Tüübivihje sisseehitatud kogumite tüüpidele
Selles versioonis on lisatud generaatori süntaks kõigile praegu saadaolevatele standardsetele kogumitele.
def read_blog_tags(tags: list[str]) -> None:
for tag in tags:
print("Sildi nimi", tag)
Teised muudatused
PEP 573 Mooduli olekule juurdepääs C laiendamise kaudu
PEP 593 Paindlikud funktsioonid ja muutujate annotatsioonid
PEP 602 Python läheb üle igaaastastele stabiilsetele väljalasetele
PEP 614 Dekoratsioonide grammatika tingimuste pehmendamine
PEP 615 IANA ajavööndite andmebaasi tugi standardraamatukogus
BPO 38379 prügikoristamine ei blokeeru taastatud objektidel
BPO 38692 os.pidfd_open, protsesside haldamiseks ilma võistlemise ja signaalideta;
BPO 39926 Unicode tugi on värskendatud versioonini 13.0.0
BPO 1635741, mitmekordse Python'i initsialiseerimise korral samas protsessis, ei toimu enam mäluleket
Python'i kogud (range, tuple, set, frozenset, list, dict) on kiirendatud PEP 590 vektorväljakutse abil
Mõned Python'i moodulid (_abc, audioop, _bz2, _codecs, _contextvars, _crypt, _functools, _json, _locale, operator, resource, time, _weakref) kasutavad nüüd mitme faasi initsialiseerimist vastavalt PEP 489 definitsioonile
Rida standardraamatukogude mooduleid (audioop, ast, grp, _hashlib, pwd, _posixsubprocess, random, select, struct, termios, zlib) kasutab nüüd stabiilset ABI-d, mille on määratlenud PEP 384.
Allikas: linux.org.ru
