Prichádza nová stabilná verzia Pythonu 3.12 a toto sú jej nové funkcie

Logo Pythonu

Python je vysokoúrovňový programovací jazyk.

Po roku vývoja Bolo oznámené vydanie stabilnej verzie a tiež začiatok fázy alfa testovania programovacieho jazyka Python 3.12 a Python 3.13 (v tomto poradí). Spomína sa, že táto nová vetva Pythonu 3.12 bude podporovaná rok a pol, potom sa ďalšie tri a pol roka budú generovať opravy na odstránenie zraniteľností.

Nová verzia Pythonu 3.12, ktorá je prezentovaná, prichádza s vylepšeniami v flexibilita analýzy f-string. S týmto vylepšením teraz mnohé obmedzenia možno nechať bokom, pretože napríklad teraz môžete v Pythone obsahovať akýkoľvek platný výraz, vrátane viacriadkových výrazov, komentárov, spätných lomítok a sekvencií escape Unicode. Okrem toho interné reťazce teraz umožňujú opätovné použitie rovnakých úvodzoviek, t. j. dvojité úvodzovky je teraz možné znova použiť vo vnútri bez toho, aby ste museli prejsť na jednoduché úvodzovky.

Napríklad:

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

Teraz je možné vnoriť ľubovoľne:

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

Ďalšou zo zmien, ktorá vyniká, je podpora pre izolované subinterprety a samostatné globálne zámky, ktoré sú určené na zvýšenie efektívnosti využívania zdrojov vo viacjadrových systémoch, keďže pre rôznych interpretov v rámci procesu CPython umožňuje, aby v procese bežalo niekoľko interpretov súčasne. Funkcia je v súčasnosti dostupná iba cez C-API (podpora Python API sa objaví v ďalšej hlavnej vetve).

Okrem toho sa zdôrazňuje aj toZvýšil sa informatívny obsah chybových hlásení a rozšíril sa okruh výnimiek, ktoré ponúkajú odporúčania na odstránenie typografických chýb. Teraz sa napríklad zobrazujú návrhy na import zabudnutých štandardných knižničných modulov a návrhy na predponu „ja“.

Pridaná možnosť používať protokol vyrovnávacej pamäte v kóde Pythonu. Triedy, ktoré poskytujú metódu "__buffer__()" možno teraz použiť ako typy, ktoré pracujú priamo s binárnymi údajmi v pamäti.

Modul sys.monitoring je navrhnutý na ladenie a profilovanie, čo vám umožňuje sledovať udalosti v CPythone, ako sú volania, návraty funkcií, vykonávanie ľubovoľných riadkov kódu, výnimky a prechody s minimálnou réžiou.

Interpret implementuje podporu pre výkonový subsystém jadra Linuxu, ktorý umožňuje určiť názvy funkcií Pythonu pri profilovaní pomocou nástroja na výkon (predtým sa v stopách určovali iba názvy funkcií C).

Pokiaľ ide o zlepšenie výkonu, spomína sa, že optimalizácia pokračovala, s ktorou Dosiahlo sa celkové zvýšenie výkonu odhadované na 5 %., bolo tiež doplnené experimentálna podpora pre binárny optimalizátor BOLT k procesu zostavovania, čím sa zvyšuje výkon o 1-5%, zatiaľ čo výkon balíka asyncio sa výrazne zlepšil (niektoré testy ukazujú 75% zrýchlenie).

Bolo implementované inline rozšírenie porozumení zoznamov, ktoré zrýchľuje prácu s porozumeniami zoznamov až dvojnásobne (pri kóde, ktorý aktívne používa porozumenie zoznamov, testovanie ukázalo celkové zvýšenie výkonu o 11 %).

Na zlepšenie bezpečnosti vstavané implementácie Algoritmy SHA1, SHA3, SHA2-384, SHA2-512 a MD5 v hashlibe boli nahradené s formálne overenými možnosťami z projektu HACL* (zabudované implementácie sa používajú iba v prípade, že OpenSSL nie je k dispozícii).

Z ďalšie zmeny ktoré vynikajú:

  • Modul má rozšírenú podporu pre Windows.
  • Python implementuje ochranu proti pretečeniu zásobníka.
    Vytvorenie triedy asyncio.Task bolo zrýchlené.
  • Veľkosť objektov Unicode sa zmenšila o 8 až 16 bajtov.
  • Operácie s regulárnymi výrazmi re.sub(), re.subn() a re.Pattern boli zrýchlené.
  • Spúšťanie kontrol isinstance() pre niektoré protokoly sa zrýchlilo 2 až 20-krát.
  • Výrazne (v niektorých testoch až 64 %) sa zrýchlili funkcie tokenize.tokenize() a tokenize.generate_tokens().
  • Načítanie atribútu a volanie metódy super() bolo zrýchlené.
  • Pre generické triedy a funkcie bola navrhnutá nová, kompaktnejšia syntax anotácií.
  • Modul webového prehliadača už nepodporuje staršie prehliadače vrátane Grail, Mosaic, Netscape, Galeon, Skipstone, Iceape, Firebird a Firefox až do verzie 36.
  • V rámci prípravy na budúce optimalizácie sa zmenila interná reprezentácia celých čísel.

V neposlednom rade, ako už bolo spomenuté, sa začalo alfa testovanie Pythonu 3.13, v ktorom sa objavil režim kompilácie CPython bez globálneho zámku tlmočníka (GIL, Global Interpreter Lock).

Pobočka Python 3.13 bude vo verzii alfa sedem mesiacov, počas ktorého budú pridané nové funkcie a opravené chyby podľa nového plánu vývoja, práce na novej vetve sa začnú päť mesiacov pred vydaním predchádzajúcej vetvy a kým ďalšia verzia dosiahne alfa testovaciu fázu.

Potom budú beta verzie testované tri mesiace, počas ktorých bude zakázané pridávanie nových funkcií a všetka pozornosť sa bude venovať opravám chýb. Počas posledných dvoch mesiacov pred vydaním bude pobočka v štádiu kandidáta na vydanie, kde prebehne konečná stabilizácia.

Konečne áno máte záujem o tom vedieť viac, môžete skontrolovať podrobnosti v nasledujúci odkaz.