En ny stabil utgivelse av det populære programmeringsspråket Python har blitt utgitt.
Python er et overordnet programmeringsspråk for generell bruk rettet mot å forbedre utviklerens produktivitet og kodelesbarhet. Hovedfunksjonene er dynamisk skriving, automatisk minneadministrasjon, full introspeksjon, unntakshåndteringsmekanisme, støtte for multi-threaded databehandling, datastrukturer på høyt nivå.
Python er et stabilt og utbredt språk. Det brukes i mange prosjekter og i ulike kapasiteter: som et primært programmeringsspråk eller for å lage utvidelser og applikasjonsintegrasjoner. Hovedanvendelsesområder: webutvikling, maskinlæring og dataanalyse, automasjon og systemadministrasjon. Python ligger for tiden på tredjeplass på rangeringen TIOBE.
Hovedendringer:
Ny høyytelses-parser basert på PEG-grammatikk.
I den nye versjonen er den nåværende Python-parseren basert på LL(1)-grammatikk (KS-grammatikk) erstattet med en ny høyytelses og stabil parser basert på PEG (PB-grammatikk). Parsere for språk representert av KS-grammatikk, for eksempel LR-parsere, krever et spesielt leksikalsk analysetrinn som bryter opp input i henhold til mellomrom, tegnsetting og så videre. Dette er nødvendig fordi disse parserne bruker forberedelse til å behandle noen KS-grammatikker i lineær tid. RV-grammatikker krever ikke et eget leksikalsk analysetrinn, og reglene for det kan fastsettes sammen med andre grammatikkregler.
Nye operatører og funksjoner
To nye operatører er lagt til den innebygde dict-klassen, | for sammenslåing av ordbøker og |= for oppdatering.
To nye funksjoner er lagt til str-klassen: str.removeprefix(prefix) og str.removesuffix(suffix).
Typehint for innebygde samlingstyper
Denne utgivelsen inkluderer støtte for generatorsyntaks i alle standardsamlinger som for øyeblikket er tilgjengelige.
def read_blog_tags(tags: liste[str]) -> Ingen:
for tagger i tagger:
print("Tagnavn", tag)
Andre endringer
-
PEP 573 Tilgang til modultilstand ved bruk av C-utvidelsesmetoder
-
PEP 593 Fleksible funksjoner og variable merknader
-
PEP 602 Python flytter til årlige stabile utgivelser
-
PEP 614 Avslappende grammatikkrestriksjoner på dekoratører
-
Støtte for PEP 615 IANA tidssonedatabase i standardbiblioteket
-
BPO 38379 Søppelinnsamling blokkerer ikke gjenvunne gjenstander
-
BPO 38692 os.pidfd_open, for kontroll av prosesser uten raser og signaler;
-
BPO 39926 Unicode-støtte oppdatert til versjon 13.0.0
-
BPO 1635741, Python lekker ikke lenger når Python initialiseres flere ganger i samme prosess
-
Python-samlinger (range, tuple, set, frozenset, list, dict) akselerert med PEP 590 vektorkall
-
Noen Python-moduler (_abc, audioop, _bz2, _codecs, _contextvars, _crypt, _functools, _json, _locale, operator, resource, time, _weakref) bruker nå flerfaseinitialisering som definert i PEP 489
-
En rekke standard bibliotekmoduler (audioop, ast, grp, _hashlib, pwd, _posixsubprocess, random, select, struct, termios, zlib) bruker nå den stabile ABI definert av PEP 384.
Kilde: linux.org.ru