Izašao je nova stabilna verzija popularnog programskog jezika Python.
Python je visokonivojski programski jezik opće namjene, usmjeren na povećanje produktivnosti programera i čitljivost koda. Osnovne značajke uključuju dinamičko tipiziranje, automatsko upravljanje memorijom, potpunu introspekciju, mehanizam obrade iznimaka, podršku za višedretveno računanje i visokonivojske strukture podataka.
Python je stabilan i široko rasprostranjen jezik. Koristi se u mnogim projektima i različitim kvalitetama: kao glavni programski jezik ili za izradu ekstenzija i integraciju aplikacija. Osnovna područja primjene su: web razvoj, strojno učenje i analiza podataka te automatizacija i sustavno administriranje. Trenutno Python zauzima treće mjesto na rang-listi TIOBE.
Glavne promjene:
Novi visoko performativni parser temeljen na PEG gramatici.
U novoj verziji trenutni parser Python-a temeljen na LL(1) gramatici zamijenjen je novim visoko performativnim i stabilnim parserom temeljenim na PEG gramatici. Parseri za jezike koji koriste kontekstualne slobodne gramatičke strukture, poput LR parsera, zahtijevaju poseban korak leksičke analize koji razdvaja unos prema razmacima, interpunkciji itd. To je potrebno jer ovi parseri koriste prethodnu analizu kako bi obradili određene kontekstualne slobodne gramatičke strukture u linearno vrijeme. PEG gramatičke strukture ne zahtijevaju poseban korak leksičke analize, a pravila za to mogu biti uključena zajedno s drugim pravilima gramatike.
Novi operatori i funkcije
U ugrađenu klasu dict dodana su dva nova operatora, | za spajanje rječnika i |= za ažuriranje.
U klasu str dodane su dvije nove funkcije: str.removeprefix(prefix) i str.removesuffix(suffix).
Sugestija tipa za ugrađene vrste kolekcija
U ovoj verziji uključena je podrška za sintaksu generatora u svim standardnim kolekcijama dostupnim trenutno.
def read_blog_tags(tags: list[str]) -> None:
for tag in tags:
print("Tag Name", tag)
Ostale promjene
PEP 573 Pristup stanju modula putem C ekstenzija
PEP 593 Fleksibilne funkcije i varijable anotacije
PEP 602 Python prelazi na godišnje stabilne izdanja
PEP 614 Ublažavanje gramatičkih ograničenja na dekoratore
PEP 615 Podrška za IANA bazu podataka vremenskih zona u standardnoj biblioteci
BPO 38379 prikupljanje smeća se ne blokira na obnovljenim objektima
BPO 38692 os.pidfd_open, za upravljanje procesima bez trka i signala;
BPO 39926 podrška za Unicode ažurirana je na verziju 13.0.0
BPO 1635741, pri višestrukoj inicijalizaciji Pythona u istom procesu, više ne dolazi do curenja memorije
Python kolekcije (range, tuple, set, frozenset, list, dict) su ubrzane pomoću vektorskog poziva PEP 590
Neki Python moduli (_abc, audioop, _bz2, _codecs, _contextvars, _crypt, _functools, _json, _locale, operator, resource, time, _weakref) sada koriste višefaznu inicijalizaciju, kao što je definirano u PEP 489
Niz standardnih bibliotečkih modula (audioop, ast, grp, _hashlib, pwd, _posixsubprocess, random, select, struct, termios, zlib) sada koristi stabilni ABI, definiran PEP 384.
Izvor: linux.org.ru
