Python 3.11 saapuu suorituskykyparannuksilla, välimuistin uudelleensuunnittelulla ja paljon muuta

Python

Python on korkean tason tulkittu ohjelmointikieli, jonka filosofia korostaa koodin luettavuutta.

Vuoden kehityksen jälkeen ohjelmointikielen Python 3.11 uusi versio on julkaistu, uutta haaraa tuetaan puolitoista vuotta, minkä jälkeen haavoittuvuuksia sisältäviä korjaustiedostoja muodostetaan vielä kolme ja puoli vuotta.

Samaan aikaan aloitettiin Python 3.12 -haaran alfatestaus (uuden kehitysaikataulun mukaan uuden haaran työt alkavat viisi kuukautta ennen edellisen haaran julkaisua ja saavuttavat alfatestauksen seuraavan version aikaan).

Python 3.12 -haara on alfajulkaisuissa seitsemän kuukauden ajan, jonka aikana uusia ominaisuuksia lisätään ja vikoja korjataan. Sen jälkeen betatestausta tehdään kolmen kuukauden ajan, jonka aikana uusien ominaisuuksien lisääminen kielletään ja virheenkorjauksiin kiinnitetään täysi huomio. Viimeiset kaksi kuukautta ennen lanseerausta sivuliike on lanseerausehdokasvaiheessa, jolloin lopullinen vakauttaminen tapahtuu.

Python 3.11:n tärkeimmät uudet ominaisuudet

Tässä uudessa versiossa Suorituksen optimoimiseksi on tehty merkittävää työtä, koska uusi haara sisältää siihen liittyviä muutoksia toimintokutsujen kiihdytyksen ja sisäänrakennetun käyttöönoton kanssa, tyypillisten toimintojen nopeiden tulkkien käyttö sekä Cinder- ja HotPy-projektien tekemät optimoinnit. Kuormituksen tyypistä riippuen koodin suoritusnopeus kasvaa 10 % ja 60 % välillä. Keskimäärin suorituskyky pyperformance-testisarjan läpäistäessä parani 25 %.

Välimuistimekanismi on suunniteltu uudelleen tavukoodia, mikä lyhensi tulkin käynnistysaikaa 10-15 %. Tulkki allokoi nyt staattisesti koodia ja tavukoodia sisältävät objektit, mikä mahdollisti välimuistista haetun tavukoodin purkamisen ja objektien muuntamisen koodilla niiden sijoittamiseksi kasomuistiin.

Lisätty tuki poikkeusryhmille, joka antaa ohjelmalle mahdollisuuden nostaa ja käsitellä useita erilaisia ​​poikkeuksia samanaikaisesti. Uusia poikkeustyyppejä ExceptionGroup ja BaseExceptionGroup ehdotetaan ryhmittelemään useita poikkeuksia yhteen, ja ilmaisu "paitsi* "lisätään erottamaan poikkeukset ryhmästä.

Lisätty erityinen LiteralString-tyyppi niin yksin voi sisältää kirjaimellisia merkkijonoja, jotka ovat yhteensopivia tyypin LiteralString kanssa (eli paljaat merkkijonot ja merkkijonot, joiden tyyppi on LiteralString, mutta ei mielivaltaisia ​​tai sekoitettuja merkkijonoja, joiden tyyppi on str). LiteralString-tyyppiä voidaan käyttää rajoittamaan merkkijonoargumenttien välittämistä funktioille, mielivaltaista merkkijonojen osien korvaamista, kun se voi johtaa haavoittuvuuksiin, esimerkiksi luotaessa merkkijonoja SQL-kyselyille tai komentotulkkikomentoille.

Sen lisäksi myös tarjotaan mahdollisuus merkitä sanakirjojen yksittäisiä elementtejä (TypedDict) pakollisilla ja ei vaadituilla lipuilla pakollisten ja valinnaisten kenttien määrittämiseksi (oletusarvoisesti kaikki ilmoitetut kentät ovat pakollisia, jos kokonaisparametriksi ei ole asetettu väärennös).

Lisätty @dataclass_transform luokan, menetelmän ja funktion koristelu, kun se on määritetty, staattinen tyypin tarkistus käsittelee objektia ikään kuin käyttäisi @dataclasses.dataclass-koristelijaa.

Muista muutoksista, jotka erottuvat tässä uudessa versiossa:

  • Lisätty mahdollisuus käyttää atomiryhmittelyä ((?>…)) ja mustasukkaisia ​​(omistuskykyisiä) kvantisoijia (*+, ++, ?+, {m,n}+) säännöllisissä lausekkeissa.
  • TypeVarTuple-tyyppi on lisätty, mikä mahdollistaa muuttujan geneeristen ominaisuuksien käytön, toisin kuin TypeVar, joka ei kata yhtä tyyppiä, vaan mielivaltaisen määrän tyyppejä.
  • Vakiokirjasto sisältää tomllib-moduulin, jossa on toimintoja TOML-muodon jäsentämiseksi.
  • Add_note()-metodi on lisätty BaseException-luokkaan, joka mahdollistaa tekstihuomautuksen liittämisen poikkeukseen esimerkiksi kontekstitietojen lisäämiseksi, joita ei ollut saatavilla poikkeuksen heittämishetkellä.
  • Erikoistyyppi Self on lisätty edustamaan nykyistä yksityistä luokkaa. Selfillä voidaan merkitä menetelmiä, jotka palauttavat luokkasi esiintymän yksinkertaisemmin kuin TypeVar:n avulla.
  • Lisätty komentorivivaihtoehto "-P" ja PYTHONSAFEPATH-ympäristömuuttuja estämään mahdollisesti vaarallisten tiedostopolkujen automaattinen yhteys sys.path-tiedostoon.
  • Windows-alustan py.exe-apuohjelmaa on parannettu merkittävästi tukemaan "-V:"-syntaksia. / " lisäksi "- . ».
  • Monet C API -makrot on muunnettu tavallisiksi tai staattisiksi rivifunktioiksi
  • Moduulit uu, cgi, pipes, crypt, aifc, chunk, msilib, telnetlib, audioop, nis, sndhdr, imghdr, nntplib, spwd, xdrlib, cgitb, mailcap, ossaudiodev ja sunau on poistettu käytöstä ja poistetaan Pythonista. 3.13 julkaisu.
  • PyUnicode_Encode*-funktiot poistettu.
  • TaskGroup-luokka lisättiin asyncio-moduuliin asynkronisen kontekstinhallinnan avulla, joka odottaa tehtäväryhmän valmistumista.
  • Tehtävien lisääminen ryhmään tapahtuu create_task()-menetelmällä.

Vihdoin jos olet kiinnostunut tietämään siitä lisää, voit tarkistaa yksityiskohdat seuraava linkki. 


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastuussa tiedoista: Miguel Ángel Gatón
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.