Programavimas

„Python 3.9“: kas naujo ir geresnio

Šiandien išleistas „Python 3.9“ pateikia reikšmingų pokyčių tiek kalbos ypatybėse, tiek kalbos tobulinimo srityje. Pastaruosius kelerius metus „Python“ populiarumas išaugo, o jo naudojimas sparčiai vystėsi tokiose srityse kaip duomenų mokslas ir mašininis mokymasis. Projektas stengiasi neatsilikti nuo naujų reikalavimų.

Čia pateikiamos visų pagrindinių naujų „Python 3.9“ funkcijų apžvalga.

„Python“ pereina į metinį išleidimo ciklą

Iki šiol „Python“ buvo sukurtas ir išleistas per aštuoniolikos mėnesių kadenciją. PEP 602 pasiūlė „Python“ kūrėjų komandai patvirtinti metinį išleidimo ciklą ir šis pasiūlymas buvo priimtas.

Metinis išleidimo ciklas reiškia mažiau funkcijų kiekvienam leidimui, tačiau tai taip pat reiškia greitesnį atsiliepimą apie funkcijų testavimą, mažiau galimai pažeidžiančių pakeitimų kiekvienam leidimui ir taip labiau skatina vartotojus ir „Linux“ paskirstymo valdytojus dažniau atnaujinti „Python“. Tai taip pat reiškia, kad naujos funkcijos, pasiūlytos vėlai kūrimo cikle, neužtruks taip ilgai, kol bus įdiegtos naujos versijos.

Naujas laiko planas reiškia, kad „Python 3.9“ bus pristatytas 2020 m. Spalio mėn. „Python 3.10“ oficialiai pradėtas iki alfa kūrimas prasidėjo 2020 m. Gegužės 19 d., Įeis į alfa kūrimo etapą, kai bus pristatytas „Python 3.9“, ir bus pristatytas 2021 m. Spalio mėn. tas pats modelis.

Pagal numatytuosius nustatymus „Python“ tampa greitesnis

Kiekvieną „Python“ peržiūrą galima palyginti su ankstesne versija. „Python 3.9“ yra du dideli patobulinimai, kurie padidina našumą nereikalaujant jokių esamo kodo pakeitimų.

Pirmasis patobulinimas apima didesnį vektorinis skambutis „Python 3.8“ įvestas protokolas. vektorinis skambutis greičiau skambina daugeliu įprastų funkcijų skambučių, sumažindami arba pašalindami laikinus skambučiui sukurtus objektus. „Python 3.9“ yra keletas „Python“ įtaisų - diapazonas, tuple, set, frozenset, list, dict - naudojimas vektorinis skambutis viduje pagreitinti vykdymą.

Antras didelis našumo stiprintuvas yra efektyvesnis „Python“ šaltinio kodo analizavimas. Naujas „CPython“ vykdymo laiko analizatorius nebuvo sukurtas siekiant išspręsti našumo problemas, o spręsti pirminio analizatoriaus vidinius neatitikimus. Tačiau svarbi papildoma nauda yra greitesnis analizavimas, ypač dideliems kodų kiekiams.

Daugiau „Python“ eilutės ir žodyno funkcijų

„Python“ leidžia lengvai manipuliuoti įprastais duomenų tipais, o „Python 3.9“ išplečia šį paprastumą naudodamas naujas stygų ir žodynų funkcijas. Stygoms yra nauji priešdėlių ir priesagų pašalinimo metodai - operacijos, kurioms išsitraukti jau seniai reikėjo daug rankinio darbo. Žodynams dabar yra sąjungos operatoriai: vienas sujungia du žodynus į naują žodyną ir vienas atnaujina vieno žodyno turinį kitu žodynu.

Dekoratoriai netenka kai kurių apribojimų

Dekoratoriai leidžia apvynioti „Python“ funkcijas, kad programiškai pakeistų jų elgesį. Anksčiau dekoratoriai galėjo susidaryti tik iš simbolio @, vardo (pvz., func) arba punktyrinis vardas (func.metodas) ir pasirinktinai vieną skambutį (func.metode (arg1, arg2)). Naudojant „Python 3.9“, dekoratoriai dabar gali būti sudaryti iš bet kurios galiojančios išraiškos.

Vienas senų būdų apeiti šį apribojimą buvo sukurti funkciją arba lambda išraišką, kuri atitiktų sudėtingesnę išraišką, kai ji naudojama kaip dekoratorė. Dabar tinka bet kokia išraiška, jei ji duoda tai, kas gali veikti kaip dekoratorius.

Naujos „Python“ tipo operacijos

Per kelias pastarąsias versijas „Python“ išplėtė tipo užuominų palaikymą. Tai daugiausia dėl pintinių ir kodų tikrintuvų; tipai nėra vykdomi vykdant „CPython“, ir neplanuojama „Python“ paversti statiškai įvesta kalba. Tačiau tipo užuomina yra galingas įrankis, užtikrinantis didelių kodų bazių nuoseklumą, todėl „Python“ kodui vis tiek gali būti naudinga turėti tipo užuominas.

Į „Python 3.9“ pateko dvi naujos tipo užuominų ir tipo anotacijų funkcijos. Pirma, rinkinių, pvz., Sąrašų ir žodynų, turinio tipo užuominos dabar yra prieinamos „Python“. Tai reiškia, kad galite, pavyzdžiui, apibūdinti sąrašą kaip sąrašas [int] - sveikųjų skaičių sąrašas - nereikia spausdinti biblioteka tai padaryti.

Antrasis „Python“ spausdinimo mechanizmų papildymas yra lanksti funkcija ir kintamos anotacijos. Tai leidžia naudoti Anotuota type apibūdinti tipą naudojant metaduomenis, kuriuos galima ištirti iš anksto (naudojant pūkavimo įrankius) arba vykdymo metu. Pavyzdžiui, Anotuota [int, ctype ("char")] gali būti naudojamas apibūdinti sveikąjį skaičių, kuris turėtų būti laikomas a char įveskite C. Pagal numatytuosius nustatymus „Python“ nieko nedarytų su tokia anotacija, tačiau ją galėtų naudoti kodų sąramos.

„Python“ vidinių patobulinimų

„Python“ vidinių dalių valymas, tobulinimas ir modernizavimas yra nuolatinė „Python“ kūrėjų iniciatyva, o „Python 3.9“ turi keletą pokyčių.

Pirmasis yra modulių sąveikos su importo mechanizmais pertvarkymas. „Python“ plėtinių moduliai, parašyti C, dabar gali naudoti naują pakrovimo mechanizmą, kuris priverčia juos elgtis labiau kaip įprasti „Python“ moduliai, kai jie importuojami. Keli „Python“ standartinės bibliotekos moduliai naujai palaiko šią elgseną: _abc, audioop, _bz2, _codecs, _contextvars, _crypt, _functools, _json, _locale, operatorius, resursas, laikas, _weakref. Naujas pakrovimo mechanizmas ne tik leidžia „Python“ lanksčiau valdyti išplėtimo modulius, bet ir suteikia naujų galimybių, tokių kaip pažangus prisijungimo elgesys.

Antroji valymo iniciatyva yra stabili vidinė „CPython“ ABI, garantuojama, kad ji tęsis visą „Python 3“ visą gyvenimą. Istoriškai, kiekviena pagrindinė „Python“ versija buvo ABI nesuderinama su ankstesnėmis versijomis, todėl kiekvienai naujai versijai buvo reikalingi kompiliavimo pratęsimo moduliai. Nuo šiol visi išplėtimo moduliai, kuriuose naudojamas stabilus ABI, veiks visose „Python“ versijose. Su „Python 3.9“ šie standartinės bibliotekos moduliai naudoja stabilią ABI: audioop, ast, grp, _hashlib, pwd, _posixsubprocess, atsitiktinis, pasirinkite, struct, termios, zlib.

Kiti „Python 3.9“ pakeitimai

  • „Python“ standartinė biblioteka dabar palaiko IANA laiko juostos duomenų bazę. Minėta duomenų bazė yra gerai prižiūrima ir plačiai naudojama, o tiesioginis būdas ją naudoti „Python“ duomenų laiko bibliotekoje bus didelis, taupantis laiką.
  • Nauji eilutės metodai leidžia lengvai pašalinti priešdėlius ir priesagas. Tai yra vienas iš tų įprastų kasdienio naudojimo scenarijų, kuriam reikėjo šiek tiek per daug katilo, nei atrodė būtina. Nauja .removeprefix () ir .removesuffix () metodai grąžina pakeistą eilutės kopiją, atėmus nagrinėjamą priešdėlį ar priesagą, jei jie egzistuoja eilutėje.

Kaip padaryti daugiau su „Python“

  • 4 „Python“ tipo tikrintuvai, kad jūsų kodas būtų švarus
  • „Python“ stilius: 5 įrankiai, skirti išvalyti jūsų „Python“ kodą
  • Kaip dirbti su „Python“ sąrašo duomenų tipu
  • Kaip supakuoti „Python“ programas su „BeeWare“ portfeliu
  • Kaip paleisti „Anaconda“ šalia kitų Pitonų
  • Kaip naudoti „Python“ duomenų klases
  • Pradėkite naudoti „Python“ asinchronizavimą
  • Kaip naudoti „asyncio“ Python
  • 3 žingsniai iki „Python“ asinchroninio remonto
  • Kaip naudoti „PyInstaller“, norint sukurti „Python“ vykdomuosius failus
  • „Cython“ pamoka: kaip pagreitinti „Python“
  • Kaip įdiegti „Python“ išmaniuoju būdu
  • Kaip valdyti „Python“ projektus naudojant „Poeziją“
  • Kaip valdyti „Python“ projektus naudojant „Pipenv“
  • „Virtualenv“ ir „venv“: paaiškintos „Python“ virtualios aplinkos
  • „Python virtualenv“ ir „venv do and donts“
  • Paaiškinta „Python“ sriegimas ir antriniai procesai
  • Kaip naudotis „Python“ derintuvu
  • Kaip naudoti „Timeit“, kad būtų galima nustatyti „Python“ kodą
  • Kaip naudoti „cProfile“ „Python“ kodui nustatyti
  • Kaip konvertuoti „Python“ į „JavaScript“ (ir dar kartą)