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ų kūrimo išleista nauja „Python“ programavimo kalbos versija – 3.11 . Naujoji šaka bus palaikoma pusantrų metų, o po to dar trejus su puse metų bus leidžiami pataisymai, skirti pažeidžiamumams pašalinti.

Tuo pačiu metu prasidėjo „Python 3.12“ šakos alfa testavimas (pagal naują kūrimo grafiką, darbas su nauja šaka prasideda penkis mėnesius prieš ankstesnės šakos išleidimą ir pasiekia alfa testavimo etapą kitos versijos išleidimo metu).

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 atlikti reikšmingi našumo optimizavimo darbai . Naujojoje šakoje yra pakeitimų, susijusių su funkcijų iškvietimų spartinimu ir diegimu , greitų interpretatorių naudojimu tipinėms operacijoms ir „Cinder“ bei „HotPy“ projektų sukurtais optimizavimais. Priklausomai nuo darbo krūvio, kodo vykdymo greitis padidėja nuo 10 % iki 60 %. Vidutiniškai našumas „pyperformance“ testų rinkinyje padidėjo 25 %.

Baitų kodo kaupimo talpykloje mechanizmas buvo pertvarkytas , todėl interpretatoriaus paleidimo laikas sutrumpėjo 10–15 %. Objektus, kuriuose yra baitkodo, dabar statiškai paskirsto interpretatorius, todėl nereikia dekoduoti iš talpyklos gauto baitkodo ir konvertuoti objektų, kuriuose yra baitkodo, dinaminiam išdėstymui atmintyje.

Pridėta išimčių grupių palaikymas , suteikiantis programai galimybę generuoti ir apdoroti kelias skirtingas išimtis vienu metu. Siūlomi nauji išimčių tipai – „ExceptionGroup“ ir „BaseExceptionGroup“ – skirti kelių išimčių grupavimui ir derinimui, o norint atskirti išimtis grupės viduje, pridėta išraiška „except*“.

Pridėtas specialus „LiteralString“ tipas , kuris gali apimti tik tas literalines eilutes, kurios suderinamos su „LiteralString“ tipu (t. y. „plikas“ eilutes ir „LiteralString“ tipo eilutes, bet ne savavališkas ar kombinuotas „str“ tipo eilutes). „LiteralString“ tipas gali būti naudojamas norint apriboti eilučių argumentų perdavimą funkcijoms, užkertant kelią savavališkam eilučių dalių pakeitimui, kai gali atsirasti pažeidžiamumų, pavyzdžiui, generuojant eilutes SQL užklausoms arba apvalkalo komandoms.

Be to, taip pat suteikiama galimybė pažymėti atskirus tipizuotų žodynų („TypedDict“) elementus žymėmis „Privaloma“ ir „Neprivaloma“, kad būtų galima nustatyti privalomus ir pasirenkamus laukus (pagal numatytuosius nustatymus visi deklaruoti laukai yra privalomi, jei parametras „total“ nėra nustatytas kaip „False“).

Pridėta klasė, metodas ir funkcijos dekoratorius @dataclass_transform ; kai nurodyta, statinis tipo tikrintuvas objektą traktuoja taip, lyg būtų naudojęs dekoratorių @dataclasses.dataclass.

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ą.

Galiausiai, jei norite sužinoti daugiau apie tai , galite rasti išsamią informaciją šioje nuorodoje.


Pridėti kaip pageidaujamą šaltinį „Google“ sistemoje