Python 3.9.0

En ny stabil udgivelse af det populære Python-programmeringssprog er blevet frigivet.

Python er et overordnet programmeringssprog til generelle formål, der sigter mod at forbedre udviklerproduktivitet og kodelæsbarhed. Hovedfunktionerne er dynamisk skrivning, automatisk hukommelsesstyring, fuld introspektion, undtagelseshåndteringsmekanisme, understøttelse af multi-threaded computing, datastrukturer på højt niveau.

Python er et stabilt og udbredt sprog. Det bruges i mange projekter og i forskellige kapaciteter: som et primært programmeringssprog eller til at skabe udvidelser og applikationsintegrationer. Hovedanvendelsesområder: webudvikling, maskinlæring og dataanalyse, automatisering og systemadministration. Python ligger i øjeblikket på tredjepladsen på ranglisten TIOBE.

Vigtigste ændringer:

Ny højtydende parser baseret på PEG-grammatikker.

I den nye version er den nuværende Python-parser baseret på LL(1)-grammatikker (KS-grammatik) erstattet med en ny højtydende og stabil parser baseret på PEG (PB-grammatik). Parsere for sprog repræsenteret af KS-grammatikker, såsom LR-parsere, kræver et særligt leksikalsk analysetrin, der opdeler input i henhold til mellemrum, tegnsætning og så videre. Dette er nødvendigt, fordi disse parsere bruger forberedelse til at behandle nogle KS-grammatikker i lineær tid. RV-grammatikker kræver ikke et separat leksikalsk analysetrin, og reglerne for det kan fastlægges sammen med andre grammatikregler.

Nye operatører og funktioner

To nye operatører er blevet tilføjet til den indbyggede dict-klasse, | til sammenlægning af ordbøger og |= til opdatering.

To nye funktioner er blevet tilføjet til str-klassen: str.removeprefix(præfiks) og str.removesuffix(suffix).

Typehint til indbyggede samlingstyper

Denne udgivelse inkluderer understøttelse af generatorsyntaks i alle standardsamlinger, der i øjeblikket er tilgængelige.

def read_blog_tags(tags: liste[str]) -> Ingen:
for tags i tags:
print("Tag Navn", tag)

Andre ændringer

  • PEP 573 Adgang til modultilstand ved hjælp af C-udvidelsesmetoder

  • PEP 593 Fleksible funktioner og variable annoteringer

  • PEP 602 Python flytter til årlige stabile udgivelser

  • PEP 614 Afslappende grammatikrestriktioner på dekoratører

  • PEP 615 IANA tidszonedatabaseunderstøttelse i standardbiblioteket

  • BPO 38379 Affaldsopsamling blokerer ikke for genvundne genstande

  • BPO 38692 os.pidfd_open, til kontrol af processer uden racer og signaler;

  • BPO 39926 Unicode-understøttelse opdateret til version 13.0.0

  • BPO 1635741, Python lækker ikke længere, når Python initialiseres flere gange i samme proces

  • Python-samlinger (range, tuple, set, frozenset, list, dict) accelereret med PEP 590 vektorkald

  • Nogle Python-moduler (_abc, audioop, _bz2, _codecs, _contextvars, _crypt, _functools, _json, _locale, operator, ressource, time, _weakref) bruger nu polyfaseinitialisering som defineret i PEP 489

  • En række standardbiblioteksmoduler (audioop, ast, grp, _hashlib, pwd, _posixsubprocess, random, select, struct, termios, zlib) bruger nu den stabile ABI defineret af PEP 384.

Kilde: linux.org.ru

Tilføj en kommentar