A Python egy magas szinten értelmezett programozási nyelv, amelynek filozófiája a kód olvashatóságát hangsúlyozza.
Egy év fejlesztés után megjelent a Python programozási nyelv új verziója, a 3.11 . Az új ág másfél évig lesz támogatott, ezt követően további három és fél évig adnak ki javításokat a sebezhetőségek javítására.
Ezzel egy időben megkezdődött a Python 3.12 ág alfa tesztelése (az új fejlesztési ütemterv szerint az új ágon végzett munka öt hónappal az előző ág megjelenése előtt kezdődik, és a következő verzió megjelenésekor éri el az alfa tesztelési szakaszt).
A Python 3.12 ága hét hónapig lesz alfa kiadásban, ezalatt új funkciókat adnak hozzá, és javítják a hibákat. Ezt követően három hónapig béta tesztelésre kerül sor, amely alatt tilos az új funkciók hozzáadása, és teljes figyelmet fordítanak a hibajavításokra. Az indulás előtti utolsó két hónapban az ág az indulási jelölt szakaszban lesz, ekkor kerül sor a végső stabilizációra.
A Python 3.11 fő újdonságai
Ez az új verzió jelentős munkákat tartalmaz a teljesítmény optimalizálása érdekében . Az új ág magában foglalja a függvényhívások gyorsításával és beágyazott telepítésével , a gyors interpreterek használatával a tipikus műveletekhez, valamint a Cinder és HotPy projektek által fejlesztett optimalizációkkal kapcsolatos változtatásokat. A munkaterheléstől függően a kódfuttatási sebesség 10% és 60% között növekszik. Átlagosan a pyperformance tesztkészlet teljesítménye 25%-kal nőtt.
A bájtkód gyorsítótárazási mechanizmusát áttervezték , ami 10-15%-kal csökkentette az interpreter indítási idejét. A bájtkódot tartalmazó objektumokat mostantól statikusan osztja ki az interpreter, kiküszöbölve a gyorsítótárból kinyert bájtkód dekódolásának és a bájtkódot tartalmazó objektumok memóriában való dinamikus elhelyezésre való konvertálásának lépéseit.
Hozzáadtuk a kivételcsoportok támogatását , így a program képes több különböző kivétel egyidejű létrehozására és feldolgozására. Új kivételtípusok, az ExceptionGroup és a BaseExceptionGroup, kerültek bevezetésre több kivétel csoportosítására és kombinálására, és az "except*" kifejezés hozzáadásra került a kivételek csoporton belüli elkülönítéséhez.
Egy speciális LiteralString típus került hozzáadásra , amely csak a LiteralString típussal kompatibilis literál karakterláncokat tud tartalmazni (azaz csupasz karakterláncokat és LiteralString típusú karakterláncokat, de nem tetszőleges vagy kombinált str típusú karakterláncokat). A LiteralString típus segítségével korlátozható a karakterlánc argumentumok függvényeknek történő átadása, megakadályozva a karakterláncok részeinek tetszőleges behelyettesítését, ahol sebezhetőségek adódhatnak, például SQL lekérdezésekhez vagy shell parancsokhoz karakterláncok generálásakor.
Ezenkívül lehetőség van a típusos szótárak (TypedDict) egyes elemeinek Kötelező és Nem Kötelező jelöléssel való megjelölésére is, így meghatározható a kötelező és az opcionális mezők (alapértelmezés szerint minden deklarált mező kötelező, ha a total paraméter nincs Hamis értékre állítva).
A @dataclass_transform osztály-, metódus- és függvénydekorátor hozzáadásra került ; ha meg van adva, a statikus típusellenőrző úgy kezeli az objektumot, mintha a @dataclasses.dataclass dekorátort használta volna.
Az új verzióban kiemelkedő többi változás közül:
- Hozzáadtuk az atomi csoportosítás ((?>…)) és féltékeny (birtokos) kvantorok (*+, ++, ?+, {m,n}+) használatát a reguláris kifejezésekben.
- Bekerült a TypeVarTuple típus, amely lehetővé teszi a változó generikusok használatát, ellentétben a TypeVar-ral, amely nem egy típust takar, hanem tetszőleges számú típust.
- A szabványos könyvtár tartalmazza a tomllib modult a TOML formátum elemzésére szolgáló függvényekkel.
- Az add_note() metódus hozzáadásra került a BaseException osztályhoz, amely lehetővé teszi szöveges megjegyzés csatolását a kivételhez, például olyan környezeti információk hozzáadásához, amelyek nem voltak elérhetők a kivétel kidobásakor.
- Egy speciális Self típus került hozzáadásra, amely az aktuális privát osztályt képviseli. A Self a TypeVar használatával egyszerűbb módon használható olyan metódusok megjegyzésére, amelyek az osztály egy példányát adják vissza.
- A "-P" parancssori opció és a PYTHONSAFEPATH környezeti változó hozzáadva a potenciálisan nem biztonságos fájlútvonalak automatikus kapcsolódásának letiltásához a sys.path fájlhoz.
- A py.exe segédprogramot a Windows platformon jelentősen továbbfejlesztették, hogy támogassa a "-V:" szintaxist. / " továbbá "- . ».
- Sok C API-makrót normál vagy statikus soron belüli függvényekké alakítottak át
- Az uu, cgi, pipes, crypt, aifc, chunk, msilib, telnetlib, audioop, nis, sndhdr, imghdr, nntplib, spwd, xdrlib, cgitb, mailcap, ossaudiodev és sunau modulok elavultak, és eltávolítják a Pythonból. 3.13 kiadás.
- PyUnicode_Encode* függvények eltávolítva.
- A TaskGroup osztályt egy aszinkron környezetkezelő megvalósításával adtuk hozzá az asyncio modulhoz, amely megvárja a feladatcsoport befejezését.
- A feladatok csoporthoz adása a create_task() metódussal történik.
Végül, ha többet szeretnél megtudni erről , a következő linken megtalálod a részleteket.