A Python 3.11 teljesítményjavításokkal, gyorsítótár-újratervezéssel és még sok mással érkezik

Piton

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 3.11 programozási nyelv új verziója, az új ágat másfél évig támogatják, majd további három és fél évig sebezhető foltokat képeznek.

Ezzel egy időben megkezdődött a Python 3.12 ág alfa tesztelése (az új fejlesztési ütemterv szerint az új ágon a munka öt hónappal az előző ág megjelenése előtt kezdődik, és a következő verzió idejére éri el az alfa tesztelést).

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

Ebben az új verzióban Jelentős munkát végeztek a teljesítmény optimalizálása érdekében, mivel az új ág ehhez kapcsolódó változásokat tartalmaz a funkcióhívások gyorsításával és inline telepítésével, a tipikus műveletek gyors értelmezőinek használata, valamint a Cinder és HotPy projektek által készített optimalizálás. A betöltés típusától függően a kódvégrehajtás sebessége 10% és 60% között nő. Átlagosan 25%-kal nőtt a pyperformance tesztcsomag sikeres teljesítése.

A gyorsítótárazási mechanizmust újratervezték bájtkód, ami 10-15%-kal csökkentette a tolmács indítási idejét. A kóddal és bájtkóddal rendelkező objektumokat most statikusan lefoglalja az értelmező, ami lehetővé tette a gyorsítótárból lekért bájtkód feloldásának és az objektumok kóddal történő konvertálásának lépéseit, hogy a kupacmemóriában helyezzék el őket.

Hozzáadva kivételes csoportok támogatása, amely lehetőséget ad a programnak több különböző kivétel egyidejű felvetésére és feldolgozására. Az ExceptionGroup és a BaseExceptionGroup új kivételtípusok több kivétel csoportosítását javasolják, és az "except*" kifejezés hozzáadódik a kivételek csoporttól való elkülönítéséhez.

Hozzáadott egy speciális LiteralString típust olyan egyedül tartalmazhat olyan literális karakterláncokat, amelyek kompatibilisek a LiteralString típussal (vagyis csupasz karakterláncok és LiteralString típusú karakterláncok, de nem tetszőleges vagy kevert str típusú karakterláncok). A LiteralString típus használható a karakterlánc-argumentumok függvényeknek való átadásának korlátozására, a karakterláncok részeinek tetszőleges helyettesítésére, ahol ez sebezhetőséghez vezethet, például SQL-lekérdezésekhez vagy shell-parancsokhoz való karakterláncok generálásakor.

Ezen kívül még a szótárak egyes elemeinek megjelölésének lehetősége biztosított (TypedDict) kötelező és nem kötelező jelzőkkel a kötelező és nem kötelező mezők meghatározásához (alapértelmezés szerint minden deklarált mező kötelező, ha a teljes paraméter nincs beállítva Hamisítvány).

Hozzáadott @dataclass_transform osztály-, metódus- és függvénydekorátor, ha meg van adva, a statikus típusellenőrző úgy kezeli az objektumot, mintha a @dataclasses.dataclass dekorátort használná.

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 érdekel, hogy többet tudjon meg róla, a részleteket itt ellenőrizheti a következő link. 


Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: Miguel Ángel Gatón
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.