Etter et års utvikling, Utgivelsen av den stabile versjonen ble annonsert og også begynnelsen av alfa-testfasen av programmeringsspråket Python 3.12 og Python 3.13 (henholdsvis). Det nevnes at denne nye grenen av Python 3.12 vil bli støttet i halvannet år, hvoretter det i ytterligere tre og et halvt år vil bli generert reparasjoner for å eliminere sårbarheter.
Den nye versjonen av Python 3.12 som presenteres kommer med forbedringer i fleksibilitet av f-streng analyse. Med denne forbedringen nå mange restriksjoner kan stå til side, siden du for eksempel nå kan inneholde et hvilket som helst gyldig uttrykk i Python, inkludert flerlinjeuttrykk, kommentarer, omvendte skråstreker og Unicode-escape-sekvenser. I tillegg tillater interne strenger nå gjenbruk av de samme anførselstegnene, dvs. doble anførselstegn kan nå gjenbrukes inne i uten å måtte endre til enkelt anførselstegn.
For eksempel:
f"""{f'''{f'{f"{1+1}"}'}'''}"""
Det er nå mulig å hekke vilkårlig:
f"{f"{f"{f"{f"{f"{1+1}"}"}"}"}"}"
En annen av endringene som skiller seg ut er støtte for isolerte undertolker og separate globale låser, som er ment å øke effektiviteten av ressursbruk i flerkjernesystemer, siden for ulike tolker innenfor en prosess lar CPython flere tolker kjøre samtidig i en prosess. Slik det er nå, er funksjonen for øyeblikket kun tilgjengelig via C-API (Python API-støtte vil vises i neste store gren).
I tillegg til dette fremheves det også atDet informative innholdet i feilmeldinger er økt og utvalget av unntak har blitt utvidet, og gir anbefalinger for å eliminere typografiske feil. For eksempel vises nå forslag for å importere glemte standardbiblioteksmoduler og forslag til prefiks "selv".
Lagt til muligheten til å bruke bufferprotokollen i Python-kode. Klasser som gir en "__buffer__()" metode kan nå brukes som typer som opererer direkte på binære data i minnet.
Modulen sys.monitoring er foreslått for feilsøking og profilering, slik at du kan overvåke hendelser i CPython som kall, funksjonsretur, utførelse av vilkårlige kodelinjer, unntak og overganger med minimal overhead.
Tolken implementerer støtte for Linux-kjernens ytelsesundersystem, som gjør at Python-funksjonsnavn kan bestemmes ved profilering ved bruk av ytelsesverktøyet (tidligere ble bare C-funksjonsnavn bestemt i spor).
Angående ytelsesforbedringer nevnes det at optimaliseringer fortsatte, med hvilken En total ytelsesgevinst beregnet til 5 % er oppnådd., ble det også lagt til eksperimentell støtte for den binære BOLT-optimalisatoren til byggeprosessen, noe som øker ytelsen med 1-5 %, mens ytelsen til asyncio-pakken har forbedret seg betydelig (noen tester viser en hastighetsøkning på 75 %).
Inline utvidelse av listeforståelser er implementert, noe som øker hastigheten på arbeidet med listeforståelser med opptil to ganger (for kode som aktivt bruker listeforståelser, viste testing en total ytelsesøkning på 11%).
For å forbedre sikkerheten, innebygde implementeringer av SHA1, SHA3, SHA2-384, SHA2-512 og MD5 algoritmer i hashlib har blitt erstattet med formelt verifiserte alternativer fra HACL*-prosjektet (innebygde implementeringer brukes kun hvis OpenSSL ikke er tilgjengelig).
Av andre endringer som skiller seg ut:
- Modulen har utvidet støtte for Windows.
- Python implementerer stabeloverløpsbeskyttelse.
Opprettelsen av klassen asyncio.Task har blitt fremskyndet. - Størrelsen på Unicode-objekter er redusert med 8 til 16 byte.
- Operasjoner med regulære uttrykk re.sub(), re.subn() og re.Pattern har blitt fremskyndet.
- Å kjøre isinstance()-sjekker for noen protokoller har blitt fremskyndet med 2 til 20 ganger.
- Betraktelig (i noen tester opptil 64%) har tokenize.tokenize()- og tokenize.generate_tokens()-funksjonene blitt fremskyndet.
- Attributtlasting og oppkalling av super()-metoden har blitt fremskyndet.
- En ny, mer kompakt annoteringssyntaks er foreslått for generiske klasser og funksjoner.
- Nettlesermodulen støtter ikke lenger eldre nettlesere inkludert Grail, Mosaic, Netscape, Galeon, Skipstone, Iceape, Firebird og Firefox opp til versjon 36.
- Som forberedelse til fremtidige optimaliseringer har den interne representasjonen av heltall blitt endret.
Sist, men ikke minst, har som nevnt begynt alfatesting av Python 3.13, der en kompileringsmodus dukket opp CPython uten en global tolkelås (GIL, Global Interpreter Lock).
Grenen Python 3.13 vil være i alfa i syv måneder, hvor nye funksjoner vil bli lagt til og feil fikset i henhold til den nye utviklingsplanen, begynner arbeidet med en ny gren fem måneder før utgivelsen av den forrige grenen og når neste versjon når teststadiet alfa.
Etter dette vil betaversjonene bli testet i tre måneder, hvor det er forbudt å legge til nye funksjoner, og all oppmerksomhet vil bli viet til å fikse feil. I løpet av de siste to månedene før utgivelsen vil filialen være i utgivelseskandidatstadiet, hvor endelig stabilisering vil finne sted.
Endelig ja du er interessert i å vite mer om det, kan du sjekke detaljene i følgende lenke.