Den nye stabile version af Python 3.12 ankommer, og disse er dens nye funktioner

Python-logo

Python er et programmeringssprog på højt niveau.

Efter et års udvikling, Udgivelsen af ​​den stabile version blev annonceret og også begyndelsen af ​​alfa-testfasen af ​​programmeringssproget Python 3.12 og Python 3.13 (henholdsvis). Det nævnes, at denne nye gren af ​​Python 3.12 vil blive understøttet i halvandet år, hvorefter der i yderligere tre et halvt år vil blive genereret rettelser for at eliminere sårbarheder.

Den nye version af Python 3.12, der præsenteres, kommer med forbedringer i fleksibilitet af f-streng analyse. Med denne forbedring nu mange restriktioner kan lades til side, da du for eksempel nu kan indeholde et hvilket som helst gyldigt udtryk i Python, inklusive multiline-udtryk, kommentarer, omvendte skråstreg og Unicode-escape-sekvenser. Derudover tillader interne strenge nu genbrug af de samme anførselstegn, dvs. dobbelte anførselstegn kan nu genbruges indeni uden at skulle skifte til enkelte citater.

For eksempel:

f"""{f'''{f'{f"{1+1}"}'}'''}"""

Det er nu muligt at indlejre vilkårligt:

f"{f"{f"{f"{f"{f"{1+1}"}"}"}"}"}"

En anden af ​​de ændringer, der skiller sig ud, er understøttelse af isolerede undertolke og separate globale låse, som har til formål at øge effektiviteten af ​​ressourceanvendelse i multicore-systemer, da CPython for forskellige tolke inden for en proces tillader flere tolke at køre på samme tid i en proces. Som den står, er funktionen i øjeblikket kun tilgængelig via C-API (Python API-understøttelse vil dukke op i den næste store gren).

Udover dette fremhæves det ogsåDet informative indhold af fejlmeddelelser er blevet øget og rækken af ​​undtagelser er blevet udvidet og giver anbefalinger til at eliminere typografiske fejl. For eksempel vises forslag til import af glemte standardbiblioteksmoduler og forslag til præfikser "selv" nu.

Tilføjet muligheden for at bruge bufferprotokollen i Python-kode. Klasser, der giver en "__buffer__()" metode kan nu bruges som typer, der opererer direkte på binære data i hukommelsen.

Modulet sys.monitoring foreslås til debugging og profilering, giver dig mulighed for at overvåge hændelser i CPython såsom opkald, funktionsretur, udførelse af vilkårlige kodelinjer, undtagelser og overgange med minimal overhead.

Fortolkeren implementerer understøttelse af Linux-kernens ydeevneundersystem, som gør det muligt at bestemme Python-funktionsnavne ved profilering ved hjælp af ydeevneværktøjet (tidligere blev kun C-funktionsnavne bestemt i spor).

Vedrørende præstationsforbedringer nævnes det optimeringer fortsatte, med hvilken Der er opnået en samlet præstationsgevinst estimeret til 5 %., blev det også tilføjet eksperimentel støtte til BOLT binære optimizer til byggeprocessen, hvilket øger ydeevnen med 1-5%, mens ydeevnen af ​​asyncio-pakken er forbedret betydeligt (nogle test viser en hastighedsstigning på 75%).

Inline udvidelse af listeforståelser er blevet implementeret, hvilket fremskynder arbejdet med listeforståelser med op til to gange (for kode, der aktivt bruger listeforståelser, viste test en samlet præstationsstigning på 11%).

For at forbedre sikkerheden indbyggede implementeringer af SHA1, SHA3, SHA2-384, SHA2-512 og MD5 algoritmer i hashlib er blevet erstattet med formelt verificerede muligheder fra HACL*-projektet (indbyggede implementeringer bruges kun, hvis OpenSSL ikke er tilgængelig).

Af andre ændringer der skiller sig ud:

  • Modulet har udvidet understøttelse af Windows.
  • Python implementerer stak overløbsbeskyttelse.
    Oprettelsen af ​​asyncio.Task-klassen er blevet fremskyndet.
  • Størrelsen af ​​Unicode-objekter er blevet reduceret med 8 til 16 bytes.
  • Operationer med regulære udtryk re.sub(), re.subn() og re.Pattern er blevet fremskyndet.
  • Kørsel af isinstance()-tjek for nogle protokoller er blevet fremskyndet med 2 til 20 gange.
  • Det er væsentligt (i nogle tests op til 64%), at funktionerne tokenize.tokenize() og tokenize.generate_tokens() er blevet fremskyndet.
  • Indlæsning af attributter og kald af super()-metoden er blevet fremskyndet.
  • En ny, mere kompakt type annotationssyntaks er blevet foreslået for generiske klasser og funktioner.
  • Webbrowsermodulet understøtter ikke længere ældre browsere inklusive Grail, Mosaic, Netscape, Galeon, Skipstone, Iceape, Firebird og Firefox op til version 36.
  • Som forberedelse til fremtidige optimeringer er den interne repræsentation af heltal blevet ændret.

Sidst men ikke mindst er der som nævnt begyndt alfatest af Python 3.13, hvor en kompileringstilstand dukkede op CPython uden en global tolkelås (GIL, Global Tolkelås).

Filialen Python 3.13 vil være i alfa i syv måneder, hvor nye funktioner vil blive tilføjet og fejl rettet i henhold til den nye udviklingsplan, begynder arbejdet med en ny gren fem måneder før udgivelsen af ​​den forrige gren og når den næste version når teststadiet alfa.

Herefter vil betaversionerne blive testet i tre måneder, hvor det er forbudt at tilføje nye funktioner, og al opmærksomhed vil blive rettet mod at rette fejl. I løbet af de sidste to måneder før udgivelsen vil filialen være i udgivelseskandidatstadiet, hvor den endelige stabilisering vil finde sted.

Endelig ja du er interesseret i at kunne vide mere om det, kan du kontrollere detaljerne i følgende link.