Programiranje

Python 3.9: Kaj je novega in boljšega

Python 3.9, objavljen danes, prinaša pomembne spremembe tako v značilnostih jezika kot v razvoju jezika. Python je v zadnjih nekaj letih naraščal svojo priljubljenost in njegova uporaba je naglo naraščala na hitro razvijajočih se področjih, kot sta znanost o podatkih in strojno učenje. Projekt si močno prizadeva, da bi sledil vsem novim zahtevam.

Tu je povzetek vseh velikih novih funkcij v Pythonu 3.9.

Python preklopi na letni cikel izdaje

Do tega trenutka je bil Python razvit in izdan v osemnajstmesečni kadenci. PEP 602 je predlagal, da razvojna skupina Pythona sprejme letni cikel izdaje, in ta predlog je bil sprejet.

Letni cikel izdaje pomeni manj funkcij na izdajo, pomeni pa tudi hitrejše povratne informacije o preizkušanju funkcij, manj potencialnih kršitev sprememb za vsako izdajo in s tem večjo spodbudo za uporabnike in upravitelje distribucije Linuxa za pogostejšo nadgradnjo Pythona. Pomeni tudi, da nove funkcije, predlagane pozno v razvojnem ciklu, ne bodo trajale toliko časa, da se uvedejo v novo izdajo.

Nova časovna premica pomeni, da bo Python 3.9 na voljo oktobra 2020. Python 3.10 se je uradno začel pred alfa razvojem 19. maja 2020, vstopil bo v fazo alfa razvoja, ko bo Python 3.9 na voljo, in bo na voljo oktobra 2021. Prihodnje izdaje Pythona bodo sledile isti vzorec.

Python privzeto postane hitrejši

Vsaka revizija Pythona ima izboljšane zmogljivosti v primerjavi s prejšnjo različico. Python 3.9 vključuje dve veliki izboljšavi, ki povečata zmogljivost, ne da bi bilo treba spremeniti obstoječo kodo.

Prvo izboljšanje vključuje večjo uporabo vectorcall protokol, uveden v Python 3.8. vectorcall pospeši številne pogoste klice funkcij tako, da zmanjša ali odpravi začasne predmete, ustvarjene za klic. V Python 3.9 je nekaj vgrajenih Python - obseg, nabor, niz, zamrznjeni niz, seznam, izrek - uporaba vectorcall interno za pospešitev izvedbe.

Drugi velik ojačevalec zmogljivosti je učinkovitejše razčlenjevanje izvorne kode Python. Novi razčlenjevalnik za izvajalno okolje CPython ni bil zasnovan za odpravljanje težav z zmogljivostjo, temveč za reševanje notranjih nedoslednosti v prvotnem razčlenjevalniku. Vendar pa je pomembna obrobna prednost hitrejše razčlenjevanje, zlasti pri velikih količinah kode.

Več funkcij Python string in slovar

Python olajša upravljanje običajnih podatkovnih vrst, Python 3.9 pa to enostavnost razširja z novimi funkcijami za nize in slovarje. Za nize obstajajo nove metode za odstranjevanje predpon in pripon, operacije, ki že dolgo zahtevajo veliko ročnega dela. Za slovarje zdaj obstajajo sindikalni operaterji, eden za združitev dveh slovarjev v nov slovar in drugi za posodobitev vsebine enega slovarja z drugim slovarjem.

Dekoraterji izgubijo nekatere omejitve

Dekoraterji vam omogočajo, da ovite funkcije Pythona, da programsko spremenite njihovo vedenje. Prej so dekoraterji lahko vsebovali samo simbol @, ime (npr. func) ali pikčasto ime (func.method) in po želji en klic (func.method (arg1, arg2)). S programom Python 3.9 lahko dekoraterji zdaj sestojijo iz katerega koli veljavnega izraza.

Ena od dolgoletnih načinov, kako se izogniti tej omejitvi, je bila ustvariti funkcijo ali lambda izraz, ki bi predstavljal bolj zapleten izraz, če bi ga uporabljali kot dekoraterja. Zdaj bo veljal katerikoli izraz, če bo prinesel nekaj, kar lahko deluje kot dekorater.

Nove operacije tipa Python

V zadnjih nekaj različicah je Python razširil podporo za namig o tipih. To je predvsem zaradi linterjev in pregledovalnikov kod; vrste med izvajanjem v CPythonu niso uveljavljene in Python ne načrtuje, da bi postal statično tipkan jezik. Namigiranje na tipke pa je močno orodje za zagotavljanje skladnosti v velikih zbirkah kod, zato lahko koda Python še vedno koristi namigom o tipih.

V Python 3.9 sta se uvrstili dve novi funkciji za namigiranje in pripisovanje vrst. V enem so namigi za vsebino zbirk - npr. Seznami in slovarji - zdaj na voljo v jeziku Python. To pomeni, da lahko na primer seznam opišete kot seznam [int] - seznam celih števil - brez potrebe po tipkanje knjižnica, da to stori.

Drugi dodatek Pythonovim tipkalnim mehanizmom je prilagodljiva funkcija in spremenljivi komentarji. To omogoča uporabo Pojasnjeno type za opis vrste z uporabo metapodatkov, ki jih je mogoče pregledati pred časom (z orodji za povezovanje) ali med izvajanjem. Na primer, Pojasnjeno [int, ctype ("char")] se lahko uporablja za opis celotnega števila, ki ga je treba obravnavati kot a char vtipkajte C. Privzeto Python s takim pripisom ne bi naredil ničesar, vendar bi ga lahko uporabljali povezovalci kod.

Izboljšave notranjosti Pythona

Čiščenje, izboljšanje in posodobitev notranjosti Pythona je stalna pobuda za razvijalce Pythona, zato ima Python 3.9 nekaj sprememb.

Prvi je preoblikovanje načina interakcije modulov z uvoznimi stroji. Razširitveni moduli Python, napisani v jeziku C, lahko zdaj uporabljajo nov nalagalni mehanizem, zaradi katerega se ob uvozu obnašajo bolj kot običajni moduli Python. Več modulov v standardni knjižnici Pythona na novo podpira to vedenje: _abc, audioop, _bz2, _codecs, _contextvars, _crypt, _functools, _json, _locale, operator, vir, čas, _weakref. Novi mehanizem za nalaganje ne samo, da Python bolj prilagodljivo ravna z razširitvenimi moduli, temveč omogoča tudi nove zmogljivosti, kot je napredno vezanje.

Druga pobuda za čiščenje je stabilen notranji ABI za CPython, ki naj bi trajal celo življenje Pythona 3. V preteklosti je bila vsaka večja revizija Pythona ABI nezdružljiva s prejšnjimi različicami, zato je bilo treba za vsako novo različico znova sestaviti razširitvene module. Odslej bodo vsi razširitveni moduli, ki uporabljajo stabilni ABI, delovali v različicah Python. S Pythonom 3.9 naslednji moduli v standardni knjižnici uporabljajo stabilni ABI: audioop, ast, grp, _hashlib, pwd, _posixsubprocess, random, select, struct, termios, zlib.

Druge spremembe v Pythonu 3.9

  • Pythonova standardna knjižnica zdaj podpira bazo podatkov IANA Time Zone. Omenjena baza podatkov je dobro vzdrževana in široko uporabljena, neposredna uporaba v Pythonovi knjižnici datuma in časa pa bo prihranila čas.
  • Nove metode nizov omogočajo enostavno odstranjevanje predpon in končnic. To je eden najpogostejših scenarijev vsakodnevne uporabe, ki je zahteval malo preveč vzorca, kot se je zdelo potrebno. Novi .removeprefix () in .removesuffix () metode vrnejo spremenjeno kopijo niza minus zadevna predpona ali pripona, pod pogojem, da obstajajo v nizu.

Kako narediti več s Pythonom

  • 4 preverjevalniki vrste Python, da bo koda čista
  • Slog Python: 5 orodij za čiščenje kode Python
  • Kako delati s podatkovnim tipom seznama Python
  • Kako zapakirati aplikacije Python v aktovko BeeWare
  • Kako zagnati Anacondo vzporedno z drugimi Pythoni
  • Kako uporabljati podatkovne razrede Python
  • Začnite z async v Pythonu
  • Kako uporabljati asyncio v Pythonu
  • 3 koraki do prenove async Pythona
  • Kako uporabiti PyInstaller za ustvarjanje izvršljivih datotek Python
  • Vadnica za Cython: Kako pospešiti Python
  • Kako namestiti Python na pameten način
  • Kako upravljati projekte Python s poezijo
  • Kako upravljati projekte Python s Pipenv
  • Virtualenv in venv: Razložena navidezna okolja Python
  • Python virtualenv in venv dela in ne sme
  • Razloženi navoji Python in podprocesi
  • Kako uporabljati razhroščevalnik Python
  • Kako uporabiti timeit za profiliranje kode Python
  • Kako uporabiti cProfile za profiliranje kode Python
  • Kako pretvoriti Python v JavaScript (in nazaj)
$config[zx-auto] not found$config[zx-overlay] not found