Python on kõrgel tasemel tõlgendatav programmeerimiskeel, mille filosoofia rõhutab selle koodi loetavust.
Pärast aastast arendust on välja antud Pythoni programmeerimiskeele uus versioon 3.11 . Uut haru toetatakse poolteist aastat, mille järel avaldatakse veel kolm ja pool aastat haavatavuste parandamiseks parandusi.
Samal ajal alustati Python 3.12 haru alfatestimist (uue arendusgraafiku kohaselt algab töö uue haru kallal viis kuud enne eelmise haru ilmumist ja jõuab alfatestimise etappi järgmise versiooni ilmumise ajaks).
Python 3.12 haru on alfaväljaannetes seitse kuud, mille jooksul lisatakse uusi funktsioone ja parandatakse vigu. Pärast seda toimub kolme kuu jooksul beetatestimine, mille jooksul on uute funktsioonide lisamine keelatud ning kogu tähelepanu pööratakse veaparandustele. Viimased kaks kuud enne käivitamist on filiaal stardikandidaatide staadiumis, misjärel toimub lõplik stabiliseerumine.
Pythoni 3.11 peamised uued funktsioonid
See uus versioon sisaldab märkimisväärset tööd jõudluse optimeerimiseks . Uus haru hõlmab muudatusi, mis on seotud funktsioonikõnede kiirendamise ja reasisese juurutamisega , kiirete interpretaatorite kasutamisega tüüpiliste toimingute jaoks ning Cinderi ja HotPy projektide väljatöötatud optimeerimistega. Sõltuvalt töökoormusest suureneb koodi täitmiskiirus 10–60%. Keskmiselt suurenes jõudlus pyperformance'i testimiskomplektis 25%.
Baitkoodi vahemällu salvestamise mehhanism on ümber kujundatud , vähendades interpretaatori käivitusaega 10–15%. Baitkoodi sisaldavad objektid jaotab nüüd interpretaator staatiliselt, mis välistab vahemälust hangitud baitkoodi dekodeerimise ja baitkoodi sisaldavate objektide dünaamiliseks mällu paigutamiseks teisendamise etapid.
Lisatud on erandite rühmade tugi , mis annab programmile võimaluse genereerida ja töödelda mitut erinevat erandit samaaegselt. Mitme erandi rühmitamiseks ja kombineerimiseks pakutakse välja uued erandite tüübid, ExceptionGroup ja BaseExceptionGroup, ning rühmas olevate erandite eraldamiseks on lisatud avaldis "except*".
Lisatud on spetsiaalne tüüp LiteralString , mis saab sisaldada ainult literaalstringe, mis ühilduvad tüübiga LiteralString (st tühjad stringid ja tüüpi LiteralString stringid, kuid mitte suvalised või kombineeritud stringid tüübiga stringid). Tüüpi LiteralString saab kasutada stringargumentide edastamise piiramiseks funktsioonidele, takistades stringide osade suvalist asendamist, kus võivad tekkida haavatavused, näiteks stringide genereerimisel SQL-päringute või shellikäskude jaoks.
Lisaks pakutakse ka võimalust märkida tüübitud sõnastike (TypedDict) üksikuid elemente märkidega „nõutav“ ja „mittenõutav“, et määrata kohustuslikud ja valikulised väljad (vaikimisi on kõik deklareeritud väljad kohustuslikud, kui parameeter „total“ ei ole seatud väärtusele „False“).
Lisati klass, meetod ja funktsioon dekoraator @dataclass_transform ; kui see on määratud, käsitleb staatiline tüübikontroll objekti nii, nagu oleks see kasutanud dekoraatorit @dataclasses.dataclass.
Muudest muudatustest, mis selles uues versioonis silma paistavad:
- Lisatud on võimalus kasutada regulaaravaldistes aatomirühmitamist ((?>…)) ja kadedaid (omastuslikke) kvantoreid (*+, ++, ?+, {m,n}+).
- Lisatud on TypeVarTuple tüüp, mis võimaldab kasutada muutujate üldisi, erinevalt TypeVarist, mis katab mitte ühte tüüpi, vaid suvalise arvu tüüpe.
- Standardne teek sisaldab moodulit tomllib koos funktsioonidega TOML-vormingu sõelumiseks.
- Klassi BaseException on lisatud meetod add_note(), mis võimaldab lisada erandile tekstimärkuse, näiteks lisada kontekstipõhist teavet, mis ei olnud erandi tegemise ajal saadaval.
- Praeguse privaatklassi esindamiseks on lisatud eritüüp Self. Selfi saab kasutada meetodite märkimiseks, mis tagastavad teie klassi eksemplari lihtsamal viisil kui TypeVari kasutamine.
- Lisatud käsurea valik "-P" ja keskkonnamuutuja PYTHONSAFEPATH, et keelata potentsiaalselt ohtlike failiteede automaatne ühendamine failiga sys.path.
- Windowsi platvormi py.exe utiliiti on süntaksi "-V:" toetamiseks oluliselt täiustatud. / " lisaks "- . ».
- Paljud C API makrod on teisendatud tavalisteks või staatilisteks reafunktsioonideks
- Moodulid uu, cgi, pipes, crypt, aifc, chunk, msilib, telnetlib, audioop, nis, sndhdr, imghdr, nntplib, spwd, xdrlib, cgitb, mailcap, ossaudiodev ja sunau on aegunud ja eemaldatakse Pythonist. 3.13 vabastamine.
- PyUnicode_Encode* funktsioonid on eemaldatud.
- Klass TaskGroup lisati asünkroonse kontekstihalduri rakendamisega asünkroonse kontekstihalduriga, mis ootab ülesanderühma lõpuleviimist.
- Ülesannete lisamine gruppi toimub meetodi create_task() abil.
Lõpuks, kui olete huvitatud selle kohta rohkem teada saamast , leiate üksikasjad järgmiselt lingilt.