Python 3.12 uus stabiilne versioon saabub ja need on selle uued funktsioonid

Pythoni logo

Python on kõrgetasemeline programmeerimiskeel.

Pärast aastast arengut Teatati stabiilse versiooni väljaandmisest ja ka programmeerimiskeele alfatestimise etapi algus Python 3.12 ja Python 3.13 (vastavalt). Mainitakse, et seda uut Python 3.12 haru toetatakse poolteist aastat, pärast mida genereeritakse veel kolm ja pool aastat parandusi haavatavuste kõrvaldamiseks.

Esitletud Python 3.12 uus versioon sisaldab täiustusi f-stringi analüüsi paindlikkus. Selle täiustusega nüüd paljud piirangud võib kõrvale jätta, kuna näiteks saate Pythonis nüüd sisaldada mis tahes kehtivat avaldist, sealhulgas mitmerealisi avaldisi, kommentaare, kaldkriipse ja Unicode'i paojärjestusi. Lisaks võimaldavad sisemised stringid nüüd samu jutumärke uuesti kasutada, st topeltjutumärke saab nüüd sees uuesti kasutada ilma ühekordsete jutumärkide vastu muutmata.

Näiteks:

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

Nüüd on võimalik suvaliselt pesastada:

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

Teine silma paistev muudatus on isoleeritud alamtõlkide ja eraldi globaalsete lukkude tugi, mis on mõeldud mitmetuumaliste süsteemide ressursikasutuse tõhususe suurendamiseks, kuna erinevatele tõlkidele protsessi sees võimaldab CPython protsessis korraga töötada mitmel tõlgil. Praegusel kujul on funktsioon saadaval ainult C-API kaudu (Python API tugi ilmub järgmises suuremas harus).

Lisaks sellele rõhutatakse ka sedaVeateadete informatiivset sisu on suurendatud ja erandite valikut on laiendatud, pakkudes soovitusi trükivigade kõrvaldamiseks. Näiteks kuvatakse nüüd soovitused unustatud standardsete teegi moodulite importimiseks ja soovitused "self" eesliite lisamiseks.

Lisatud võimalus kasutada Pythoni koodis puhverprotokolli. Klassid, mis pakuvad meetodit "__buffer__()", saab nüüd kasutada tüüpidena, mis töötavad otse mälus olevatel binaarandmetel.

mooduli sys.monitoring on pakutud silumiseks ja profiilide koostamiseks, võimaldab teil jälgida CPythoni sündmusi, nagu kõned, funktsioonide tagastamised, suvaliste koodiridade täitmine, erandid ja üleminekud minimaalse lisakuluga.

Tõlk rakendab Linuxi tuuma jõudluse alamsüsteemi tuge, mis võimaldab jõudlusutiliidi abil profileerimisel määrata Pythoni funktsioonide nimesid (varem määrati jälgedes ainult C funktsioonide nimed).

Seoses jõudluse parandamisega mainitakse seda optimeerimine jätkus, millega Tulemuslikkuse kogukasv on hinnanguliselt 5%., lisati ka see BOLT binaarse optimeerija eksperimentaalne tugi ehitusprotsessile, suurendades jõudlust 1–5%, samas kui asyncio paketi jõudlus on oluliselt paranenud (mõned testid näitavad 75% kiirenemist).

Rakendatud on loendi mõistmise inline laiendamine, mis kiirendab loendist arusaamistega töötamist kuni kaks korda (aktiivselt loendi mõistmist kasutava koodi puhul näitas testimine üldist jõudluse kasvu 11%).

Turvalisuse parandamiseks sisseehitatud rakendused SHA1, SHA3, SHA2-384, SHA2-512 ja MD5 algoritmid hashlibis on asendatud HACL* projekti ametlikult kinnitatud suvanditega (sisseehitatud juurutusi kasutatakse ainult siis, kui OpenSSL pole saadaval).

Kohta muud muudatused mis paistavad silma:

  • Moodul on laiendanud Windowsi tuge.
  • Python rakendab virna ülevoolukaitset.
    Asyncio.Task klassi loomist on kiirendatud.
  • Unicode'i objektide suurust on vähendatud 8–16 baiti.
  • Tehted regulaaravaldistega re.sub(), re.subn() ja re.Pattern on kiirendatud.
  • Mõne protokolli isinstance() kontrollide käitamist on kiirendatud 2–20 korda.
  • Oluliselt (mõnes testis kuni 64%) on funktsioone tokenize.tokenize() ja tokenize.generate_tokens() kiirendatud.
  • Atribuutide laadimine ja super() meetodi kutsumine on kiirendatud.
  • Üldklasside ja funktsioonide jaoks on välja pakutud uus, kompaktsemat tüüpi annotatsiooni süntaks.
  • Veebibrauseri moodul ei toeta enam vanemaid brausereid, sealhulgas Graal, Mosaic, Netscape, Galeon, Skipstone, Iceape, Firebird ja Firefox kuni versioonini 36.
  • Tulevaste optimeerimiste ettevalmistamisel on täisarvude sisemist esitust muudetud.

Lõpuks, nagu mainitud, on alanud Python 3.13 alfatestimine, mille käigus ilmus kompileerimisrežiim CPython ilma globaalse tõlgilukuta (GIL, Global Interpreter Lock).

Filiaal Python 3.13 on alfarežiimis seitse kuud, mille käigus lisatakse uusi funktsioone ja parandatakse vigu vastavalt uuele arendusgraafikule, algab töö uue haruga viis kuud enne eelmise haru väljaandmist ja selleks ajaks, kui järgmine versioon jõuab alfa testimisetappi.

Pärast seda testitakse beetaversioone kolm kuud, mille jooksul on uute funktsioonide lisamine keelatud ning kogu tähelepanu pööratakse vigade parandamisele. Viimase kahe kuu jooksul enne vabastamist on filiaal väljalaskekandidaatide staadiumis, kus toimub lõplik stabiliseerumine.

Lõpuks jah olete huvitatud sellest rohkem teada saama, saate üksikasju vaadata järgmine link.