Python 3.11 kommer med ydeevneforbedringer, caching redesign og mere

Python

Python er et fortolket programmeringssprog på højt niveau, hvis filosofi understreger læsbarheden af ​​dets kode.

Efter et års udvikling, den nye version af programmeringssproget Python 3.11 er blevet offentliggjort, vil den nye afdeling blive understøttet i halvandet år, hvorefter der dannes patches med sårbarheder i yderligere tre et halvt år.

Samtidig begyndte alfatest af Python 3.12-grenen (ifølge den nye udviklingsplan starter arbejdet med en ny filial fem måneder før udgivelsen af ​​den forrige filial og når alfatest på tidspunktet for den næste version).

Python 3.12-grenen vil være i alfa-udgivelser i syv måneder, hvor nye funktioner vil blive tilføjet og fejl rettet. Derefter vil beta-test finde sted i tre måneder, hvor tilføjelsen af ​​nye funktioner vil være forbudt, og der vil blive givet fuld opmærksomhed på fejlrettelser. De sidste to måneder før lanceringen vil filialen være i lanceringskandidatstadiet, hvor den endelige stabilisering vil finde sted.

De vigtigste nye funktioner i Python 3.11

I denne nye version Der er gjort et betydeligt arbejde for at optimere ydeevnen, da den nye filial indeholder relaterede ændringer med acceleration og inline-implementering af funktionskald, brugen af ​​hurtige tolke af typiske operationer, samt optimeringer udarbejdet af Cinder- og HotPy-projekterne. Afhængigt af belastningstypen stiger kodeudførelseshastigheden mellem 10 % og 60 %. I gennemsnit steg ydeevnen med 25 %, når de bestod pyperformance-testpakken.

Caching-mekanismen er blevet redesignet bytekode, hvilket reducerede tolkens opstartstid med 10-15 %. Objekter med kode og bytekode er nu statisk allokeret af fortolkeren, hvilket gjorde det muligt at eliminere trinene med at optrevle bytekode hentet fra cachen og konvertere objekter med kode for at placere dem i heap-hukommelsen.

Tilføjet støtte til undtagelsesgrupper, hvilket giver programmet mulighed for at rejse og behandle flere forskellige undtagelser på samme tid. Nye undtagelsestyper ExceptionGroup og BaseExceptionGroup foreslås til at gruppere flere undtagelser sammen, og udtrykket "except*" tilføjes for at adskille undtagelser fra en gruppe.

Tilføjet en speciel LiteralString-type så alene kan inkludere bogstavelige strenge, der er kompatible med typen LiteralString (det vil sige bare strenge og strenge af typen LiteralString, men ikke vilkårlige eller blandede strenge af typen str). LiteralString-typen kan bruges til at begrænse videregivelsen af ​​strengargumenter til funktioner, vilkårlig substitution af dele af strenge, hvor det kan føre til sårbarheder, for eksempel ved generering af strenge til SQL-forespørgsler eller shell-kommandoer.

Ud over det også muligheden for at markere individuelle elementer i ordbøger er forudsat (TypedDict) med påkrævede og ikke påkrævede flag for at bestemme påkrævede og valgfrie felter (som standard er alle deklarerede felter påkrævet, hvis totalparameteren ikke er indstillet til Falsk).

Tilføjet @dataclass_transform klasse, metode og funktion dekorator, når det er angivet, behandler den statiske typekontrol objektet, som om du bruger @dataclasses.dataclass-dekoratoren.

Af de andre ændringer, der skiller sig ud i denne nye version:

  • Tilføjet muligheden for at bruge atomgruppering ((?>…)) og jaloux (besiddende) kvantificerere (*+, ++, ?+, {m,n}+) i regulære udtryk.
  • TypeVarTuple-typen er blevet tilføjet, som tillader brugen af ​​variable generiske stoffer, i modsætning til TypeVar, som ikke dækker én type, men et vilkårligt antal typer.
  • Standardbiblioteket inkluderer tomllib-modulet med funktioner til at parse TOML-formatet.
  • Metoden add_note() er blevet tilføjet til BaseException-klassen, som gør det muligt at vedhæfte en tekstnote til undtagelsen, for eksempel for at tilføje kontekstuel information, der ikke var tilgængelig på det tidspunkt, hvor undtagelsen blev kastet.
  • En speciel type Selv er blevet tilføjet til at repræsentere den aktuelle private klasse. Self kan bruges til at annotere metoder, der returnerer en forekomst af din klasse på en enklere måde end at bruge TypeVar.
  • Tilføjet "-P" kommandolinjemulighed og PYTHONSAFEPATH miljøvariabel for at deaktivere automatisk forbindelse af potentielt usikre filstier til sys.path.
  • py.exe-værktøjet til Windows-platformen er blevet væsentligt forbedret for at understøtte "-V:"-syntaksen. / " i tillæg til "- . ».
  • Mange C API-makroer er blevet konverteret til almindelige eller statiske inline-funktioner
  • Uu, cgi, pipes, crypt, aifc, chunk, msilib, telnetlib, audioop, nis, sndhdr, imghdr, nntplib, spwd, xdrlib, cgitb, mailcap, ossaudiodev og sunau-modulerne er blevet forældet og vil blive fjernet fra Python. 3.13 udgivelse.
  • Fjernede PyUnicode_Encode*-funktioner.
  • TaskGroup-klassen blev føjet til asyncio-modulet med implementeringen af ​​en asynkron konteksthåndtering, der venter på, at opgavegruppen er færdig.
  • Tilføjelse af opgaver til en gruppe udføres ved hjælp af create_task() metoden.

Endelig hvis du er interesseret i at vide mere om det, kan du tjekke detaljerne i følgende link. 


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.