Python 3.11 pristatoma su našumo patobulinimais, talpyklos pertvarkymu ir dar daugiau

Pitonas

Python yra aukšto lygio interpretuojama programavimo kalba, kurios filosofija pabrėžia jos kodo skaitomumą.

Po metų plėtros išleista nauja programavimo kalbos Python 3.11 versija, naujasis filialas bus palaikomas pusantrų metų, po to dar trejus su puse metų bus formuojami pataisymai su pažeidžiamumu.

Tuo pačiu metu prasidėjo Python 3.12 šakos alfa testavimas (pagal naują kūrimo grafiką, darbas su nauju filialu prasideda penkis mėnesius iki ankstesnio filialo išleidimo ir pasiekia alfa testavimą iki kitos versijos).

Python 3.12 atšaka alfa versijose bus išleista septynis mėnesius, per kuriuos bus pridėta naujų funkcijų ir ištaisytos klaidos. Po to tris mėnesius vyks beta versijos testavimas, kurio metu bus draudžiama pridėti naujų funkcijų, o visas dėmesys bus skiriamas klaidų taisymui. Paskutinius du mėnesius iki paleidimo filialas bus kandidato į paleidimą stadijoje, o tada įvyks galutinis stabilizavimas.

Pagrindinės naujos Python 3.11 funkcijos

Šioje naujoje versijoje Buvo atliktas didelis darbas siekiant optimizuoti našumą, nes naujajame filiale yra susiję pakeitimai su pagreitinimu ir tiesioginiu funkcijų iškvietimų diegimu, greitų tipinių operacijų interpretatorių naudojimas, taip pat Cinder ir HotPy projektų parengtos optimizacijos. Priklausomai nuo apkrovos tipo, kodo vykdymo greitis padidėja nuo 10% iki 60%. Vidutiniškai našumas išlaikius pyperformance testų rinkinį padidėjo 25%.

Talpyklos mechanizmas buvo perkurtas baitinio kodo, o tai sumažino vertėjo paleidimo laiką 10–15%. Objektus su kodu ir baitiniu kodu dabar statiškai paskirsto vertėjas, todėl buvo galima pašalinti iš talpyklos paimto baitinio kodo išskaidymo ir objektų konvertavimo kodu, kad jie būtų įtraukti į krūvos atmintį, veiksmus.

Pridėta parama išimčių grupėms, kuri suteikia programai galimybę vienu metu iškelti ir apdoroti kelias skirtingas išimtis. Nauji išimčių tipai ExceptionGroup ir BaseExceptionGroup siūlomi sugrupuoti kelias išimtis kartu, o išraiška "išskyrus* "pridedama norint atskirti išimtis nuo grupės.

Pridėtas specialus LiteralString tipas toks vienišas gali apimti pažodines eilutes, kurios yra suderinamos su LiteralString tipu (ty tuščios eilutės ir eilutės, kurių tipas yra LiteralString, bet ne savavališkos arba mišrios str tipo eilutės). „LiteralString“ tipas gali būti naudojamas apriboti eilučių argumentų perdavimą funkcijoms, savavališką eilučių dalių pakeitimą, kai tai gali sukelti pažeidžiamumą, pavyzdžiui, generuojant eilutes SQL užklausoms arba apvalkalo komandoms.

Be to, taip pat suteikiama galimybė pažymėti atskirus žodynų elementus (TypedDict) su vėliavėlėmis Required ir Not Required, kad būtų galima nustatyti privalomus ir pasirenkamus laukus (pagal numatytuosius nustatymus visi deklaruoti laukai yra būtini, jei bendras parametras nenustatytas į Netikras).

Pridėtas @dataclass_transform klasės, metodo ir funkcijos dekoratorius, kai nurodyta, statinio tipo tikrintuvas apdoroja objektą taip, lyg naudotų @dataclasses.dataclass dekoratorių.

Iš kitų šioje naujoje versijoje išsiskiriančių pakeitimų:

  • Pridėta galimybė įprastose išraiškose naudoti atominį grupavimą ((?>…)) ir pavydo (savininkavimo) kvantifikatorius (*+, ++, ?+, {m,n}+).
  • Pridėtas TypeVarTuple tipas, leidžiantis naudoti kintamųjų generinius duomenis, skirtingai nei TypeVar, kuris apima ne vieną tipą, o atsitiktinį skaičių tipų.
  • Standartinėje bibliotekoje yra modulis tomllib su funkcijomis TOML formatui analizuoti.
  • Metodas add_note() buvo įtrauktas į klasę „BaseException“, kuri leidžia prie išimties pridėti teksto pastabą, pavyzdžiui, pridėti kontekstinės informacijos, kurios nebuvo tuo metu, kai buvo paskelbta išimtis.
  • Pridėtas specialus tipas „Self“, vaizduojantis dabartinę privačią klasę. „Self“ galima naudoti norint komentuoti metodus, kurie grąžina jūsų klasės egzempliorių, paprastesniu būdu nei naudojant „TypeVar“.
  • Pridėta komandų eilutės parinktis „-P“ ir aplinkos kintamasis PYTHONSAFEPATH, kad būtų išjungtas automatinis galimai nesaugių failų kelių prijungimas prie sys.path.
  • „Windows“ platformai skirta „py.exe“ programa buvo žymiai patobulinta, kad palaikytų „-V:“ sintaksę. / " be to "- . ».
  • Daugelis C API makrokomandų buvo konvertuotos į įprastas arba statines tiesiogines funkcijas
  • Moduliai uu, cgi, pipes, crypt, aifc, chunk, msilib, telnetlib, audioop, nis, sndhdr, imghdr, nntplib, spwd, xdrlib, cgitb, mailcap, ossaudiodev ir sunau moduliai buvo nebenaudojami ir bus pašalinti iš Python. 3.13 išleidimas.
  • Pašalintos PyUnicode_Encode* funkcijos.
  • „TaskGroup“ klasė buvo įtraukta į asinchroninį modulį, įdiegus asinchroninį konteksto tvarkyklę, kuri laukia, kol užduočių grupė bus baigta.
  • Užduočių įtraukimas į grupę atliekamas naudojant create_task() metodą.

Pagaliau jei norite sužinoti daugiau apie tai, išsamią informaciją galite sužinoti šią nuorodą. 


Būkite pirmas, kuris pakomentuos

Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Atsakingas už duomenis: Miguel Ángel Gatón
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.