Megérkezik a Python 3.12 új stabil verziója, és ezek az újdonságok

Python logó

A Python egy magas szintű programozási nyelv.

Egy év fejlesztés után Bejelentették a stabil verzió megjelenését valamint a programozási nyelv alfatesztelési szakaszának kezdete is Python 3.12 és Python 3.13 (illetve). Megemlítik, hogy a Python 3.12-nek ezt az új ágát másfél évig támogatják, majd további három és fél évig javításokat generálnak a sebezhetőségek kiküszöbölésére.

A Python 3.12 bemutatott új verziója fejlesztéseket tartalmaz a az f-sztring elemzés rugalmassága. Ezzel a fejlesztéssel most sok korlátozást el lehet hagyni, mivel például mostantól bármilyen érvényes kifejezést tartalmazhat a Pythonban, beleértve a többsoros kifejezéseket, megjegyzéseket, fordított perjeleket és Unicode escape szekvenciákat. Ezenkívül a belső karakterláncok lehetővé teszik ugyanazon idézőjelek újrafelhasználását, azaz a dupla idézőjelek újra felhasználhatók belül anélkül, hogy egyetlen idézőjelre kellene váltania.

Például:

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

Mostantól lehetőség van önkényes beágyazásra:

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

A másik kiemelkedő változás a elszigetelt altolmácsok és különálló globális zárak támogatása, amelyek célja az erőforrás-felhasználás hatékonyságának növelése többmagos rendszerekben, hiszen egy folyamaton belül a különböző tolmácsok számára a CPython lehetővé teszi, hogy egy folyamatban egyszerre több interpretátor is futhasson. Jelenlegi állapotában a funkció csak C-API-n keresztül érhető el (a Python API támogatás a következő nagyobb ágban jelenik meg).

Ezen kívül kiemelik azt isBővült a hibaüzenetek tájékoztató tartalma a kivételek köre pedig bővült, ajánlásokat kínálva a nyomdai hibák kiküszöbölésére. Például most megjelennek az elfelejtett szabványos könyvtári modulok importálására vonatkozó javaslatok, valamint a „self” előtaggal kapcsolatos javaslatok.

Hozzáadtuk a pufferprotokoll használatának lehetőségét a Python kódban. A "__buffer__()" metódust biztosító osztályok mostantól olyan típusokként használhatók, amelyek közvetlenül a memóriában lévő bináris adatokon működnek.

A modul A sys.monitoring a hibakereséshez és profilalkotáshoz javasolt, lehetővé teszi a CPython eseményeinek, például hívások, függvényvisszaadások, tetszőleges kódsorok végrehajtásának, kivételek és átmenetek figyelését minimális többletköltséggel.

Az értelmező támogatja a Linux kernel teljesítmény alrendszerét, amely lehetővé teszi Python-függvénynevek meghatározását a teljesítmény-segédprogram segítségével történő profilalkotás során (korábban csak a C függvényneveket határozták meg a nyomkövetésekben).

A teljesítmény javításával kapcsolatban megemlítik, hogy az optimalizálás folytatódott, amellyel A teljes teljesítménynövekedést 5%-ra becsülik., azt is hozzátették kísérleti támogatás a BOLT bináris optimalizálóhoz az összeállítási folyamathoz, 1-5%-kal növelve a teljesítményt, miközben az asyncio csomag teljesítménye jelentősen javult (egyes tesztek 75%-os gyorsulást mutatnak).

A listaértelmezések soron belüli bővítése megtörtént, ami akár kétszeresére is felgyorsítja a listaértelmezésekkel végzett munkát (a listaértelmezéseket aktívan használó kódoknál a tesztelés összességében 11%-os teljesítménynövekedést mutatott ki).

A biztonság javítása érdekében beépített megvalósításai A hashlib SHA1, SHA3, SHA2-384, SHA2-512 és MD5 algoritmusait lecserélték a HACL* projekt formálisan ellenőrzött opcióival (a beépített implementációk csak akkor használatosak, ha az OpenSSL nem elérhető).

A egyéb változások amelyek kiemelkednek:

  • A modul kiterjesztette a Windows támogatását.
  • A Python veremtúlcsordulás elleni védelmet valósít meg.
    Az asyncio.Task osztály létrehozása felgyorsult.
  • A Unicode objektumok mérete 8-16 bájttal csökkent.
  • A re.sub(), re.subn() és re.Pattern reguláris kifejezésekkel végzett műveletek felgyorsultak.
  • Az isinstance() ellenőrzések futtatása egyes protokolloknál 2-20-szorosára gyorsult.
  • Jelentősen (egyes tesztekben akár 64%) is felgyorsult a tokenize.tokenize() és tokenize.generate_tokens() függvény.
  • Az attribútumok betöltése és a super() metódus meghívása felgyorsult.
  • Az általános osztályokhoz és függvényekhez új, kompaktabb típusú annotáció-szintaxist javasoltak.
  • A webböngésző modul már nem támogatja a régebbi böngészőket, mint például a Grail, Mosaic, Netscape, Galeon, Skipstone, Iceape, Firebird és Firefox 36-os verzióig.
  • A jövőbeli optimalizálás előkészítéseként az egész számok belső reprezentációja megváltozott.

Végül, de nem utolsósorban, mint említettük, megkezdődött a Python 3.13 alfa tesztelése, amelyben megjelent egy fordítási mód CPython globális tolmácszár nélkül (GIL, Global Interpreter Lock).

Az ág A Python 3.13 hét hónapig lesz alfa állapotban, amely során az új fejlesztési ütemterv szerint új funkciókat adnak hozzá és a hibákat kijavítják, a munka egy új ágon öt hónappal az előző ág megjelenése előtt kezdődik, és mire a következő verzió eléri az alfa tesztelési szakaszt.

Ezt követően három hónapig tesztelik a béta verziókat, ezalatt tilos új funkciók hozzáadása, és minden figyelmet a hibák kijavítására fordítanak. A megjelenés előtti utolsó két hónapban az ág a kiadásjelölt szakaszban lesz, ahol megtörténik a végső stabilizáció.

Végül igen szeretne többet megtudni róla, ellenőrizheti a részleteket a következő link.