Python 3.9.0

Uusi vakaa julkaisu suositusta Python-ohjelmointikielestä on julkaistu.

Python on korkeatasoinen, yleiskäyttöinen ohjelmointikieli, jonka tarkoituksena on parantaa kehittäjien tuottavuutta ja koodin luettavuutta. Tärkeimmät ominaisuudet ovat dynaaminen kirjoittaminen, automaattinen muistinhallinta, täysi itsetutkiskelu, poikkeusten käsittelymekanismi, monisäikeisen laskennan tuki, korkean tason tietorakenteet.

Python on vakaa ja laajalle levinnyt kieli. Sitä käytetään monissa projekteissa ja eri ominaisuuksissa: ensisijaisena ohjelmointikielenä tai laajennusten ja sovellusintegraatioiden luomiseen. Pääsovellusalueet: verkkokehitys, koneoppiminen ja data-analyysi, automaatio ja järjestelmähallinta. Python on tällä hetkellä rankingissa kolmannella sijalla TIOBE.

Suurimmat muutokset:

Uusi tehokas jäsentin, joka perustuu PEG-kielioppiin.

Uudessa versiossa nykyinen LL(1)-kielioppiin perustuva Python-jäsennin (KS-kielioppi) korvataan uudella, tehokkaalla ja vakaalla PEG-pohjaisella jäsentimellä (PB-kielioppi). KS-kielioppien edustamien kielten jäsentimet, kuten LR-jäsentimet, vaativat erityisen leksikaalisen analyysivaiheen, joka jakaa syötteen välilyöntien, välimerkkien ja niin edelleen mukaan. Tämä on välttämätöntä, koska nämä jäsentimet käyttävät valmistelua käsitelläkseen joitain KS-kielioppeja lineaarisessa ajassa. RV-kieliopit eivät vaadi erillistä leksikaalista analyysivaihetta, ja sen säännöt voidaan laatia muiden kielioppisääntöjen kanssa.

Uudet operaattorit ja toiminnot

Sisäänrakennettuun saneluluokkaan on lisätty kaksi uutta operaattoria, | sanakirjojen yhdistämiseen ja |= päivittämiseen.

Str-luokkaan on lisätty kaksi uutta funktiota: str.removeprefix(prefix) ja str.removesuffix(suffix).

Tyyppivihjeet sisäänrakennetuille kokoelmatyypeille

Tämä julkaisu sisältää tuen generaattorin syntaksille kaikissa tällä hetkellä saatavilla olevissa vakiokokoelmissa.

def read_blog_tags(tags: list[str]) -> Ei mitään:
tageissa oleville tunnisteille:
print("Tagin nimi", tunniste)

Muut muutokset

  • PEP 573 Moduulin tilan käyttäminen C-laajennusmenetelmillä

  • PEP 593 Joustavat toiminnot ja muuttuvat huomautukset

  • PEP 602 Python siirtyy vuotuisiin vakaisiin julkaisuihin

  • PEP 614 Sisustajien rentouttavat kielioppirajoitukset

  • PEP 615 IANA -aikavyöhyketietokantatuki vakiokirjastossa

  • BPO 38379 Roskien kerääminen ei estä palautettuja objekteja

  • BPO 38692 os.pidfd_open, prosessien ohjaamiseen ilman kilpailuja ja signaaleja;

  • BPO 39926 Unicode-tuki päivitetty versioon 13.0.0

  • BPO 1635741, Python ei enää vuoda, kun Python alustetaan useita kertoja samassa prosessissa

  • Python-kokoelmat (alue, tuple, set, frozenset, list, dict) kiihdytetty PEP 590 -vektorikutsulla

  • Jotkut Python-moduulit (_abc, audioop, _bz2, _codecs, _contextvars, _crypt, _functools, _json, _locale, operaattori, resurssi, aika, _weakref) käyttävät nyt monivaiheista alustusta PEP 489:n mukaisesti.

  • Useat vakiokirjastomoduulit (audioop, ast, grp, _hashlib, pwd, _posixsubprocess, random, select, struct, termios, zlib) käyttävät nyt PEP 384:n määrittelemää vakaata ABI:ta.

Lähde: linux.org.ru

Lisää kommentti