Den nya stabila versionen av Python 3.12 kommer och det här är dess nya funktioner

Python-logotyp

Python är ett programmeringsspråk på hög nivå.

Efter ett års utveckling, Släppningen av den stabila versionen tillkännagavs och även början av alfatestfasen av programmeringsspråket python 3.12 och Python 3.13 (respektive). Det nämns att denna nya gren av Python 3.12 kommer att stödjas i ett och ett halvt år, varefter under ytterligare tre och ett halvt år kommer korrigeringar att genereras för att eliminera sårbarheter.

Den nya versionen av Python 3.12 som presenteras kommer med förbättringar i flexibilitet för f-stränganalys. Med denna förbättring nu många restriktioner kan lämnas åt sidan, eftersom du till exempel nu kan innehålla vilket giltigt uttryck som helst i Python, inklusive flerradsuttryck, kommentarer, omvända snedstreck och Unicode-escape-sekvenser. Dessutom tillåter interna strängar nu återanvändning av samma citattecken, dvs. dubbla citattecken kan nu återanvändas inuti utan att behöva ändra till enstaka citattecken.

Till exempel:

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

Det är nu möjligt att kapsla godtyckligt:

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

En annan av de förändringar som sticker ut är stöd för isolerade undertolkar och separata globala lås, som är avsedda att öka effektiviteten i resursanvändningen i flerkärniga system, eftersom CPython för olika tolkar inom en process tillåter flera tolkar att köra samtidigt i en process. Som det ser ut är funktionen för närvarande endast tillgänglig via C-API (Python API-stöd kommer att dyka upp i nästa stora gren).

Utöver detta lyfts det också fram attDet informativa innehållet i felmeddelanden har utökats och utbudet av undantag har utökats och ger rekommendationer för att eliminera typografiska fel. Till exempel visas nu förslag för att importera bortglömda standardbiblioteksmoduler och förslag på prefix "jag".

Lade till möjligheten att använda buffertprotokollet i Python-kod. Klasser som tillhandahåller en "__buffer__()"-metod kan nu användas som typer som fungerar direkt på binära data i minnet.

Modulen sys.monitoring föreslås för felsökning och profilering, så att du kan övervaka händelser i CPython såsom anrop, funktionsreturer, exekvering av godtyckliga kodrader, undantag och övergångar med minimal overhead.

Tolken implementerar stöd för Linux-kärnans prestandaundersystem, vilket gör att Python-funktionsnamn kan bestämmas vid profilering med hjälp av prestandaverktyget (tidigare bestämdes endast C-funktionsnamn i spår).

Angående prestandaförbättringar nämns det att optimeringarna fortsatte, med vilken En total prestationsvinst uppskattad till 5 % har erhållits., lades det också till experimentellt stöd för den binära optimeraren BOLT till byggprocessen, vilket ökar prestandan med 1-5%, medan prestandan för asyncio-paketet har förbättrats avsevärt (vissa tester visar en 75%-ig snabbare ökning).

Inline-expansion av listförståelser har implementerats, vilket påskyndar arbetet med listförståelse med upp till två gånger (för kod som aktivt använder listförståelse visade testningen en total prestandaökning på 11%).

För att förbättra säkerheten, inbyggda implementeringar av SHA1, SHA3, SHA2-384, SHA2-512 och MD5 algoritmer i hashlib har ersatts med formellt verifierade alternativ från HACL*-projektet (inbyggda implementeringar används endast om OpenSSL inte är tillgängligt).

Av andra förändringar som sticker ut:

  • Modulen har utökat stöd för Windows.
  • Python implementerar stackspillskydd.
    Skapandet av klassen asyncio.Task har påskyndats.
  • Storleken på Unicode-objekt har minskats med 8 till 16 byte.
  • Operationer med reguljära uttryck re.sub(), re.subn() och re.Pattern har snabbats upp.
  • Att köra isinstance()-kontroller för vissa protokoll har snabbats upp med 2 till 20 gånger.
  • Avsevärt (i vissa tester upp till 64%) har funktionerna tokenize.tokenize() och tokenize.generate_tokens() snabbats upp.
  • Attributladdning och anrop av metoden super() har påskyndats.
  • En ny, mer kompakt annoteringssyntax har föreslagits för generiska klasser och funktioner.
  • Webbläsarmodulen stöder inte längre äldre webbläsare inklusive Grail, Mosaic, Netscape, Galeon, Skipstone, Iceape, Firebird och Firefox upp till version 36.
  • Som förberedelse för framtida optimeringar har den interna representationen av heltal ändrats.

Sist men inte minst har som nämnts alfatestning av Python 3.13 påbörjats, där ett kompileringsläge dök upp CPython utan ett globalt tolklås (GIL, Global Interpreter Lock).

Grenen Python 3.13 kommer att finnas i alfa i sju månader, under vilka nya funktioner kommer att läggas till och buggar fixas enligt det nya utvecklingsschemat, påbörjas arbetet med en ny gren fem månader innan släppet av den föregående grenen och när nästa version når teststadiet alfa.

Efter detta kommer betaversionerna att testas i tre månader, under vilka det är förbjudet att lägga till nya funktioner och all uppmärksamhet kommer att ägnas åt att fixa buggar. Under de sista två månaderna före release kommer filialen att vara i release-kandidatstadiet, där slutlig stabilisering kommer att ske.

Äntligen ja du är intresserad av att veta mer om detkan du kontrollera detaljerna i följande länk.