Python 3.10 se ponaša kot ena najstabilnejših različic, ki so na voljo za prenos uporabnikom, in bo izšla kasneje letos. Na novo izdana različica bo doživela številne opazne spremembe, na primer enostavne funkcije za začetnike in izkušene programerje.
Očitne izboljšave v novi različici Pythona vključujejo uvedbo strukturnega vzorca ujemanje, boljša sporočila o napakah, novi sindikalni operaterji, natančne številke vrstic za odpravljanje napak in še veliko več več.
Tukaj morate vedeti o Pythonu 3.10:
Ujemanje strukturnih vzorcev v Pythonu 3.10
Zaradi ujemanja strukturnih vzorcev je pisanje kode preprosto in je še vedno eden najpomembnejših vrhuncev najnovejše različice Pythona. Namen Pythona je izboljšati že obstoječe stavke za primerjavo velikih črk, ki so prisotni v prejšnjih različicah programskega jezika. Posodobil je obstoječe izjave o ujemanju primerov v Pythonu.
Na hitro poglejmo izvedbe ujemanja strukturnih vzorcev:
Izjava match-case je že nekaj časa del jezika Python. Ta izjava se v bistvu uporablja za izogibanje dolgočasnemu pisanju če potem izjavo večkrat.
S to funkcijo se lahko ujemate s predmeti s podobnimi lastnostmi v novi gradnji.
ujemanje media_object:
slika ohišja (type = "jpg"):
# Vrni se, kot je
vrni medijski_objekt
slika ohišja (vrsta = "png") | Slika (type = "gif"):
vrni render_as (medijski_objekt, "jpg")
primer videa ():
dvignite ValueError ("Še ni mogoče izvleči okvirjev iz videoposnetka")
primer druga_vrsta:
raise Exception (f "Vrsta medija {media_object} še ni mogoče obdelati")
Nova knjižnica python prepozna predmete, kot so jpg, gif in videoposnetki. Ta koda lahko deluje brez težav, ne da bi pri tem prišlo do napake.
2. Izboljšana sporočila o napakah
Vsak kodirnik verjetno razume pomen napak pri pisanju kode in kako moteče so lahko nekatere vrste napak. Prejšnje različice Pythona so vrnile sporočila o napakah takoj, ko je prišlo do težav v sintaksi. Razlogi za to so lahko med drugim napačna sintaksa, manjkajoče ključne besede, napačne ali napačno črkovane ključne besede.
Ta sporočila o napakah še zdaleč niso bila popolna, saj je začetnikom (včasih celo naprednim uporabnikom) postalo težko ugotoviti pravi vzrok napake v njihovih kodah. Kot programer je Google še vedno vaš zaveznik pri dešifriranju vzrokov za različna sporočila o napakah.
Mnogi ljudje na primer morda ne vedo, zakaj Python vrže naslednjo napako:
SyntaxError: nepričakovan EOF med razčlenjevanjem sporočila o napaki.
Zaradi pomanjkanja jasnosti v teh izjavah je najnovejša različica Pythona izboljšala svoj obstoječi nabor sporočil o napakah.
Starejša sporočila so bila zamenjana z lahko razumljivimi sporočili o napakah, kot so:
{ni bil nikoli zaprt nepričakovani EOF med razčlenjevanjem
Še nekaj sprememb vključuje:
Napake atributov, kot so:
iz zbirk uvoz imenomtoplo
modul 'collections' nima atributa 'namedtoplo'. Ste mislili: namedtuple?
Sporočila NameError so spremenjena tako, da izgledajo tako:
nov_var = 5
tiskanje (new_vr)>
NameError: ime 'new_vr' ni definirano. Ste mislili: new_var?
3. Parentezirani upravitelji konteksta
Z novimi upravitelji konteksta, ki so podprti, lahko vaša koda izgleda bolj elegantno. Čeprav to ni pomembna lastnost, lahko vašo kodo naredi manj okorno. Ta funkcija je koristna, če delate v skupini in mora biti vaša koda strukturirana.
Predstavljajte si, da napišete izjavo, kot je:
z open ('file1.txt', 'r') kot plavut, open ('file2.txt', 'w') kot fout:
fout.write (fin.read ())
Zgornja koda deluje, vendar je prva vrstica predolga in izgleda nerodno. Vrstico lahko prekinete s poševnico ((\) in naredite kodo strukturirano:
z open ('file1.txt', 'r') kot plavut, \ open ('file2.txt', 'w') kot fout: fout.write (fin.read ())
Z uvedbo novega upravitelja konteksta v poenostavljenem kontekstu lahko vrstico prekinete tudi z oklepaji:
z (open ('file1.txt', 'r') kot plavut,
odprto ('file2.txt', 'w') kot fout):
fout.write (fin.read ())
Povezano: Ideje za Python projekt primerne za začetnike
4. Nov operater tipa Union
Majhna, a priročna funkcija v Pythonu 3.10 je nova vrsta sindikalnega operaterja. Vsaka izdaja Python ima vnaprej določen nabor namigov za tip.
Sindikalni operater vključuje pogojno logiko; na primer int ali plovec lahko zapišemo kot Union [X, Y]. Novi sindikalni operater se lahko izrazi tako int | float tudi.
Uvedba novega operacijskega zveze v Pythonu 3.10 prihrani čas in naredi kodo dobro definirano.
Na primer:
def f (x: int | float) -> float:
vrnitev x * 3.142
f (1) # podaja
f (1.5) # podaja
f ('str') # linter bo prikazal napako pripisa
5. Natančne številke vrstic za odpravljanje napak
Morda ste že večkrat opazili, da vas sledenje napak ne preusmeri v pravo vrstico, kjer je prišlo do napake. To otežuje odpravljanje napak za kodirnike, ki so šele začeli pisati kodo.
Pomanjkljivo sledenje napakam je še posebej očitno pri pisanju sys.settrace in sorodna orodja v Pythonu. Novejša različica to bistveno izboljša in ob napaki lahko vidite natančne številke vrstic.
Za natančnejšo številko vrstice Python 3.10 zanesljivost premakne s trenutne co_Inotab atribut in uporablja novo metodo co_lines () atribut. Ta atribut deluje tako, da je f_lineo vedno vsebuje natančno številko vrstice.
1. za (
2. x) v [1]:
3. prehod
4. vrnitev
Povezano: Odpravite napake v kodi Python
6. Preloženo vrednotenje pripisov
V Pythonu se ovrednotenje oznak tipa izvede v času opredelitve funkcije. To pomeni, da se pripisi vrst ocenjujejo po vrsticah od zgoraj navzdol.
Čeprav se morda zdi najboljša možnost, obstajata pri tem pristopu še dve težavi:
- Namigi za vrste se nanašajo na vrste, ki še niso določene in ne delujejo; te namige je treba izraziti kot nize.
- Uvoz modula se je upočasnil, saj se namigi o tipu izvajajo v realnem času.
Da bi se izognili težavam pri izvajanju, so pripisi shranjeni v _opombe_ in vrednotenje se izvede skupaj. To omogoča vnaprejšnje sklicevanje, ko se najprej izvede uvoz modulov, s čimer se skrajša čas inicializacije.
Delo z najnovejšimi funkcijami v Pythonu 3.10
Najnovejša različica Pythona bo izšla 4. oktobra 2021; obljublja odpravo napak, ki so prisotne v obstoječih različicah. Različice, ki sledijo, bodo izboljšale trenutno različico 3.10.
Vrhunec te nove posodobitve je preslikava strukturnih vzorcev, ki olajša pisanje kod za podobne predmete. Z drugimi funkcijami, kot so upravitelji konteksta v parentezih in novi operaterji Union, je koda preprostejša in učinkovitejša.
Kljub temu obstaja nekaj odličnih tehnik obravnave izjem v obstoječih različicah Pythona. Pythonove funkcije lahko dobro izkoristite.
Pokrijte svoje baze kodiranja z izjemami Python.
Preberite Naprej
- Programiranje
- Programiranje
- Python
- Nasveti za kodiranje
Wini je pisatelj iz Delhija, ki ima 2 leti pisnih izkušenj. V času pisanja je bila povezana z agencijami za digitalno trženje in tehničnimi podjetji. Napisala je vsebino v zvezi s programskimi jeziki, tehnologijo v oblaku, AWS, strojnim učenjem in še veliko več. V prostem času rada slika, preživi čas z družino in potuje v hribe, kadar koli je to mogoče.
Naročite se na naše novice
Pridružite se našemu glasilu za tehnične nasvete, ocene, brezplačne e -knjige in ekskluzivne ponudbe!
Kliknite tukaj, če se želite naročiti