Python 3.12:n uusi vakaa versio saapuu ja nämä ovat sen uusia ominaisuuksia

Python-logo

Python on korkean tason ohjelmointikieli.

Vuoden kehityksen jälkeen Vakaan version julkaisu julkistettiin ja myös ohjelmointikielen alfatestausvaiheen alku Python 3.12 ja Python 3.13 (vastaavasti). Mainitaan, että tätä Python 3.12:n uutta haaraa tuetaan puolitoista vuotta, minkä jälkeen vielä kolmen ja puolen vuoden ajan luodaan korjauksia haavoittuvuuksien poistamiseksi.

Esitelty Python 3.12:n uusi versio sisältää parannuksia f-merkkijonoanalyysin joustavuus. Tällä parannuksella nyt monet rajoitukset voidaan jättää huomiotta, koska voit esimerkiksi nyt sisältää minkä tahansa kelvollisen lausekkeen Pythonissa, mukaan lukien moniriviset lausekkeet, kommentit, kenoviivat ja Unicode-pakosekvenssit. Lisäksi sisäiset merkkijonot mahdollistavat nyt samojen lainausmerkkien uudelleenkäytön, eli lainausmerkkejä voidaan nyt käyttää uudelleen sisällä ilman, että sinun tarvitsee vaihtaa yksittäisiin lainausmerkkeihin.

Esimerkiksi:

f"""{f'''{f'{f"{1+1}"}'}'''}"""

Nyt on mahdollista upottaa mielivaltaisesti:

f"{f"{f"{f"{f"{f"{1+1}"}"}"}"}"}"

Toinen erottuvista muutoksista on tuki eristetyille alitulkkeille ja erillisille globaaleille lukoille, joiden tarkoituksena on tehostaa resurssien käyttöä moniytimisissä järjestelmissä, koska prosessin eri tulkkeille CPython mahdollistaa useiden tulkkien ajamisen samaan aikaan prosessissa. Ominaisuus on tällä hetkellä saatavilla vain C-API:n kautta (Python API -tuki ilmestyy seuraavassa suuressa haarassa).

Tämän lisäksi korostetaan myös sitäVirheilmoitusten informatiivista sisältöä on lisätty ja poikkeusten valikoimaa on laajennettu tarjoamalla suosituksia kirjoitusvirheiden poistamiseksi. Esimerkiksi ehdotukset unohdettujen vakiokirjastomoduulien tuomiseksi ja ehdotukset "self"-etuliitteeksi näytetään nyt.

Lisätty mahdollisuus käyttää puskuriprotokollaa Python-koodissa. Luokkia, jotka tarjoavat "__buffer__()" -menetelmän, voidaan nyt käyttää tyyppeinä, jotka toimivat suoraan muistissa oleville binääritiedoille.

Moduuli sys.monitoringia ehdotetaan virheenkorjaukseen ja profilointiin, jonka avulla voit seurata tapahtumia CPythonissa, kuten kutsuja, funktion palautuksia, mielivaltaisten koodirivien suorittamista, poikkeuksia ja siirtymiä minimaalisella lisäkululla.

Tulkki toteuttaa tuen Linux-ytimen suorituskykyalijärjestelmälle, jonka avulla Python-funktioiden nimet voidaan määrittää profiloitaessa suorituskykyapuohjelmalla (aiemmin jäljiin määritettiin vain C-funktioiden nimet).

Suorituskyvyn parannuksista mainitaan optimointi jatkui, joiden kanssa Kokonaissuorituskyvyn lisäys on arviolta 5 %., se myös lisättiin kokeellinen tuki BOLT-binäärioptimoijalle rakennusprosessiin, mikä lisää suorituskykyä 1–5 %, kun taas asyncio-paketin suorituskyky on parantunut merkittävästi (jotkut testit osoittavat 75 %:n nopeutta).

Listan ymmärtämisen inline-laajennus on otettu käyttöön, mikä nopeuttaa työskentelyä luetteloiden ymmärtämisen kanssa jopa kaksinkertaiseksi (aktiivisesti luettelon ymmärtämistä käyttävällä koodilla testaus osoitti kokonaissuorituskyvyn kasvun 11 %).

Turvallisuuden parantamiseksi sisäänrakennetut toteutukset Hashlibin SHA1-, SHA3-, SHA2-384-, SHA2-512- ja MD5-algoritmit on korvattu HACL*-projektin virallisesti vahvistetuilla vaihtoehdoilla (sisäänrakennettuja toteutuksia käytetään vain, jos OpenSSL ei ole käytettävissä).

Niistä muut muutokset jotka erottuvat:

  • Moduuli on laajentanut tukea Windowsille.
  • Python ottaa käyttöön pinon ylivuotosuojauksen.
    Asyncio.Task-luokan luomista on nopeutettu.
  • Unicode-objektien kokoa on pienennetty 8 - 16 tavua.
  • Toimintoja säännöllisillä lausekkeilla re.sub(), re.subn() ja re.Pattern on nopeutettu.
  • Joidenkin protokollien isinstance()-tarkistusten suorittamista on nopeutettu 2–20 kertaa.
  • Merkittävästi (joissakin testeissä jopa 64 %) tokenize.tokenize()- ja tokenize.generate_tokens()-funktioita on nopeutettu.
  • Attribuuttien lataus ja super()-menetelmän kutsuminen on nopeutettu.
  • Yleisluokille ja funktioille on ehdotettu uutta, tiiviimpää tyyppimerkintöjen syntaksia.
  • Verkkoselainmoduuli ei enää tue vanhempia selaimia, kuten Grail, Mosaic, Netscape, Galeon, Skipstone, Iceape, Firebird ja Firefox versioon 36 asti.
  • Tulevia optimointeja varten kokonaislukujen sisäistä esitystapaa on muutettu.

Viimeisenä mutta ei vähäisimpänä, kuten mainittiin, Python 3.13:n alfatestaus on alkanut, jossa käännöstila ilmestyi CPython ilman yleistä tulkin lukitusta (GIL, Global Interpreter Lock).

Oksa Python 3.13 on alfaversiossa seitsemän kuukautta, jonka aikana uusia ominaisuuksia lisätään ja vikoja korjataan uuden kehitysaikataulun mukaisesti, työ uuden haaran parissa alkaa viisi kuukautta ennen edellisen haaran julkaisua ja kun seuraava versio saavuttaa testausvaiheen alfa.

Tämän jälkeen beta-versioita testataan kolmen kuukauden ajan, jonka aikana uusien ominaisuuksien lisääminen on kielletty ja kaikki huomio kiinnitetään bugien korjaamiseen. Haara on julkaisua edeltävän kahden kuukauden aikana julkaisuehdokasvaiheessa, jossa tapahtuu lopullinen vakauttaminen.

Lopuksi kyllä olet kiinnostunut tietämään siitä lisää, voit tarkistaa yksityiskohdat seuraava linkki.