Python 3.10 kan skryte av å være en av de mest stabile versjonene som er tilgjengelige for brukere å laste ned, og vil bli utgitt senere i år. Den nylig utgitte versjonen kommer med mange merkbare endringer, for eksempel brukervennlige funksjoner for både nybegynnere og erfarne programmerere.

De skarpe forbedringene i den nye Python-versjonen inkluderer innføring av strukturelt mønster matching, bedre feilmeldinger, nye fagforeningsoperatører, nøyaktige linjenumre for feilsøking, og mye mer mer.

Her er hva du trenger å vite om Python 3.10:

Matching av strukturelle mønstre i Python 3.10

Structural Pattern Matching gjør kodeskriving til en film, og det fortsetter å være et av de fremtredende høydepunktene i den siste Python-versjonen. Python tar sikte på å forbedre de allerede eksisterende setningsuttalelsene i tidligere versjoner av programmeringsspråket. Det er gjort en oppdatering av eksisterende match-case-uttalelser i Python.

La oss ta en rask titt på implementeringene av Structural Pattern Matching:

instagram viewer

Kampsaken har vært en del av Python-språket en stund nå. Denne uttalelsen brukes i utgangspunktet for å unngå det kjedelige arbeidet med å skrive hvis-annet uttalelse flere ganger.

Du kan matche mot objekter med lignende egenskaper ved å bruke denne funksjonen i den nye bygningen.

match media_object:
saksbilde (type = "jpg"):
# Gå tilbake som den er
returner media_object
case Image (type = "png") | Bilde (type = "gif"):
returner render_as (media_object, "jpg")
sak Video ():
øke ValueError ("Kan ikke hente bilder fra videoen ennå")
tilfelle other_type:
heve unntak (f "Medietype {media_object} kan ikke håndteres ennå")

Det nye python-biblioteket gjenkjenner gjenstander som jpg, gif og videoer. Denne koden kan kjøre sømløst uten å kaste feil.

2. Forbedrede feilmeldinger

Hver koder forstår sannsynligvis viktigheten av feil mens du skriver kode, og hvor opprørende noen feiltyper kan være. De forrige versjonene av Python kastet feilmeldinger så snart det var problemer i syntaksen. Disse kan blant annet skyldes feil syntaks, manglende søkeord, feil eller feilstavede søkeord.

Disse feilmeldingene var langt fra perfekte, ettersom det ble vanskelig for nybegynnere (til og med avanserte brukere) å identifisere den virkelige årsaken til feilen i kodene sine. Som programmerer fortsetter Google å være din allierte i å tyde årsaken bak forskjellige feilmeldinger.

For eksempel vet mange kanskje ikke hvorfor Python kaster følgende feil:

 SyntaxError: uventet EOF under parsing av feilmelding.

Mangelen på klarhet i slike uttalelser fikk den nyeste Python-versjonen til å forbedre sitt eksisterende sett med feilmeldinger.

De eldre meldingene er erstattet med lett forståelige feilmeldinger som:

{ble aldri stengt uventet EOF mens du analyserer

Noen flere endringer inkluderer:

Attributtfeil som:

fra samleimport navngitt toplo

modulen 'samlinger' har ingen attributt 'namedtoplo'. Mente du: namedtuple?

NameError-meldinger er endret slik at de ser ut:

new_var = 5
skriv ut (ny_vr)>

NameError: navnet 'new_vr' er ikke definert. Mente du: new_var?

3. Parentesiserte kontekstledere

De nye Parenthesized Context Managers kan gjøre koden din mer elegant. Selv om det ikke er en hovedfunksjon, kan det enkelt gjøre koden din mindre klumpete. Denne funksjonen er gunstig hvis du jobber i et team og koden din må være strukturert.

Tenk deg å skrive en uttalelse som:

med open ('file1.txt', 'r') som fin, open ('file2.txt', 'w') som fout:
fout.write (fin.read ())

Koden ovenfor fungerer, men den første linjen er altfor lang og ser klønete ut. Du kan bryte linjen ved å bruke tilbakeslag (\) og få koden til å se strukturert ut:

med open ('file1.txt', 'r') som fin, \ open ('file2.txt', 'w') som fout: fout.write (fin.read ())

Med introduksjonen av den nye Parenthesized Context manager kan du også bryte linjen med parenteser:

med (åpen ('file1.txt', 'r') som fin,
åpne ('file2.txt', 'w') som fout):
fout.write (fin.read ())

I slekt: Python-prosjektideer som passer for nybegynnere

4. Ny type fagforening

En liten, men praktisk funksjon i Python 3.10 er den nye typen fagforeningsoperatør. Hver Python-utgivelse kommer med et forhåndsdefinert sett med type-tip-funksjoner.

Fagforeningsoperatøren inkluderer betinget logikk; for eksempel, int eller flyte kan skrives som Union [X, Y]. Den nye fagforeningsoperatøren kan uttrykkes som int | flyte også.

Innføringen av en ny fagforeningsoperand i Python 3.10 er tidsbesparende og får koden til å se veldefinert ut.

For eksempel:

def f (x: int | float) -> float:
retur x * 3.142
f (1) # pass
f (1,5) # pass
f ('str') # linter viser merknadsfeil

Kommentarfeil i Python

5. Nøyaktige linjenumre for feilsøking

Du har kanskje lagt merke til mange ganger før at feilsøking ikke omdirigerer deg til riktig linje der en feil har oppstått. Dette gjør feilsøking vanskelig for kodere som nettopp har begynt å skrive kode.

Feilsporing av feil er spesielt tydelig under skriving sys.settrace og relaterte verktøy i Python. Den nyere versjonen forbedrer dette betydelig, og du kan se presise linjenumre når det oppstår en feil.

For å få et mer presist linjenummer, flytter Python 3.10 påliteligheten fra strømmen co_Inotab attributt og bruker den nye metoden co_lines () Egenskap. Dette attributtet fungerer på en slik måte at f_lineo inneholder alltid det nøyaktige linjenummeret.

1. for (
2. x) i [1]:
3. sende
4. komme tilbake

I slekt: Feilsøk din Python -kode

6. Utsatt evaluering av merknader

Innenfor Python utføres evalueringen av typen annotering på funksjonstidens definisjonstidspunkt. Dette betyr at typeanmerkninger evalueres linje for linje på en topp-ned-måte.

Selv om det kan virke som det beste alternativet, er det fortsatt to problemer med denne tilnærmingen:

  • Typetips refererer til typer som ikke er definert ennå og som ikke fungerer; disse hintene må uttrykkes som strenger.
  • Modulimporten ble redusert ettersom typetips kjøres i sanntid.

For å unngå problemer med utførelse, lagres merknader i _annotations_ og evaluering utføres sammen. Dette gjør det mulig å videresende referanser når modulimport utføres først, og reduserer dermed initialiseringstiden.

Arbeide med de nyeste funksjonene i Python 3.10

Pythons nyeste versjon kommer ut 4. oktober 2021; det lover å fikse feilene som er tilstede i de eksisterende versjonene. Versjonene som følger vil forbedre den nåværende 3.10 -versjonen.

Strukturell mønsterkartlegging er høydepunktet i denne nye oppdateringen, og det gjør skrivingskoder for lignende objekter enklere. Andre funksjoner som Parenthesized Context Managers og nye type Union Operators tar sikte på å gjøre koden enklere og effektiv.

Likevel er det noen gode teknikker for unntakshåndtering i de eksisterende Python -versjonene. Du kan gjøre god bruk av Pythons funksjoner.

DelekvitringE -post
Hvordan håndtere unntak i Python

Dekk kodingsbaser med Python -unntak.

Les neste

Relaterte temaer
  • Programmering
  • Programmering
  • Python
  • Kodetips
Om forfatteren
Wini Bhalla (21 artikler publisert)

Wini er en Delhi -basert forfatter, som har 2 års skriveerfaring. I løpet av skrivestundene har hun vært tilknyttet digitale markedsføringsbyråer og tekniske firmaer. Hun har skrevet innhold relatert til programmeringsspråk, skyteknologi, AWS, maskinlæring og mye mer. På fritiden liker hun å male, tilbringe tid med familien og reise til fjells når det er mulig.

Mer fra Wini Bhalla

Abonner på vårt nyhetsbrev

Bli med i vårt nyhetsbrev for tekniske tips, anmeldelser, gratis ebøker og eksklusive tilbud!

Klikk her for å abonnere