Python 3.10 stoltserar med att vara en av de mest stabila versionerna som finns tillgängliga för användare att ladda ner, och kommer att släppas senare i år. Den nyligen släppta versionen kommer med många märkbara förändringar, såsom lättanvända funktioner för både nybörjare och erfarna programmerare.
De uppenbara förbättringarna i den nya Python-versionen inkluderar introduktionen av strukturell mönstermatchning, bättre felmeddelanden, nya fackliga operatörer, exakta radnummer för felsökning och mycket mer.
Här är vad du behöver veta om Python 3.10:
Strukturell mönstermatchning i Python 3.10
Strukturell mönstermatchning gör kodskrivning en cinch, och det fortsätter att vara en av de framträdande höjdpunkterna i den senaste Python-versionen. Python syftar till att förbättra de redan existerande match-case-satserna som finns i de tidigare versionerna av programmeringsspråket. Den har gjort en uppdatering av de befintliga uttalandena om matchfall inom Python.
Låt oss ta en snabb titt på implementeringarna av strukturell mönstermatchning:
Match-case uttalandet har varit en del av Python-språket ett tag nu. Detta uttalande används i princip för att undvika det tråkiga arbetet med att skriva om annat uttalande flera gånger.
Du kan matcha mot objekt med liknande egenskaper med den här funktionen i den nya byggnaden.
match media_object:case Image(type="jpg"):# Return as-isreturn media_objectcase Image(type="png") | Image(type="gif"):return render_as(media_object, "jpg")case Video():raise ValueError("Can't extract frames from video yet")case other_type:raise Exception(f"Media type {media_object} can't be handled yet")
Det nya pythonbiblioteket känner igen objekt som jpg, gif och videor. Den här koden kan köras sömlöst utan att skapa ett fel.
2. Förbättrade felmeddelanden
Varje kodare förstår sannolikt vikten av fel när du skriver kod, och hur irriterande vissa feltyper kan vara. De tidigare versionerna av Python gav felmeddelanden så fort det uppstod problem i syntaxen. Dessa kan bland annat bero på fel syntax, saknade sökord, felaktiga eller felstavade sökord.
Dessa felmeddelanden var långt ifrån perfekta eftersom det blev svårt för nybörjare (ibland även avancerade användare) att identifiera den verkliga orsaken till felet i sina koder. Som programmerare fortsätter Google att vara din allierade när det gäller att dechiffrera orsaken bakom olika felmeddelanden.
Till exempel kanske många inte vet varför Python ger följande fel:
SyntaxError: unexpected EOF while parsing error message.
Otydligheten i sådana uttalanden fick den senaste Python-versionen att förbättra sin befintliga uppsättning felmeddelanden.
De äldre meddelandena har ersatts med lättförståeliga felmeddelanden som:
{ var aldrig stängd oväntad EOF under analys
Några fler ändringar inkluderar:
Attributfel som:
from collections import namedtoplo
modulen ‘samlingar’ har inget attribut ‘namedtoplo’. Menade du: namedtuple?
NameError-meddelanden ändras så att de ser ut så här:
new_var = 5print(new_vr)>
NameError: namnet ‘new_vr’ är inte definierat. Menade du: new_var?
3. Kontexthanterare i parentes
De nya Context Managers med parentes kan få din kod att se mer elegant ut. Även om det inte är en viktig funktion, kan det lätt göra din kod mindre klumpig. Den här funktionen är fördelaktig om du arbetar i ett team och din kod behöver struktureras.
Föreställ dig att skriva ett uttalande som:
with open('file1.txt', 'r') as fin, open('file2.txt', 'w') as fout:fout.write(fin.read())
Koden ovan fungerar, men den första raden är alldeles för lång och ser klumpig ut. Du kan bryta linjen med ett snedstreck () och få koden att se strukturerad ut:
with open('file1.txt', 'r') as fin, open('file2.txt', 'w') as fout: fout.write(fin.read())
Med introduktionen av den nya parentesiserade kontexthanteraren kan du också bryta linjen med parenteser också:
with (open('file1.txt', 'r') as fin,open('file2.txt', 'w') as fout):fout.write(fin.read())
4. Ny typfackoperatör
En liten men praktisk funktion i Python 3.10 är den nya typen av facklig operatör. Varje Python-utgåva kommer med en fördefinierad uppsättning typtipsfunktioner.
Den fackliga operatören inkluderar villkorlig logik; till exempel, int eller flyta kan skrivas som Union[X, Y]. Den nya fackliga operatören kan uttryckas som int|float också.
Införandet av en ny facklig operand i Python 3.10 är tidsbesparande och får koden att se väldefinierad ut.
Till exempel:
def f(x: int | float) -> float: return x * 3.142f(1) # passf(1.5) # passf('str') # linter will show annotation error
5. Exakta radnummer för felsökning
Du kanske har märkt många gånger tidigare att felspårning inte omdirigerar dig till rätt rad där ett fel har inträffat. Detta gör felsökning svårt för kodare som precis har börjat skriva kod.
Den felaktiga felsökningen är särskilt tydlig när du skriver sys.settrace och relaterade verktyg i Python. Den nyare versionen förbättrar detta avsevärt, och du kan se exakta radnummer när ett fel uppstår.
För att få ett mer exakt radnummer ändrar Python 3.10 dess tillförlitlighet från strömmen co_Inotab attribut och använder den nya metoden co_lines() attribut. Detta attribut fungerar på ett sätt så att f_lineo innehåller alltid det korrekta radnumret.
1. for (2. x) in [1]:3. pass4. return
6. Uppskjuten utvärdering av anteckningar
Inom Python utförs utvärderingen av typkommentarer vid funktionsdefinitionstid. Detta innebär att typkommentarer utvärderas rad för rad på ett top-down sätt.
Även om det kan verka som det bästa alternativet, finns det fortfarande två problem med detta tillvägagångssätt:
Typtips hänvisar till typer som inte är definierade ännu och som inte fungerar; dessa tips måste uttryckas som strängar. Modulimporten saktades ner eftersom typtips exekveras i realtid.
För att undvika exekveringsproblem lagras kommentarer i _kommentarer_ och utvärdering görs tillsammans. Detta möjliggör framåtriktad referens när modulimporter utförs först, vilket minskar initialiseringstiden.
Arbeta med de senaste funktionerna i Python 3.10
Pythons senaste version släpps den 4 oktober 2021; det lovar att fixa de buggar som finns i de befintliga versionerna. De följande versionerna kommer att förbättra den nuvarande versionen 3.10.
Strukturell mönstermappning är höjdpunkten i den här nya uppdateringen, och det gör det enklare att skriva koder för liknande objekt. Andra funktioner som Context Managers i parentes och nya typer av Union Operators syftar till att göra koden enklare och effektiv.
Ändå finns det några utmärkta undantagshanteringstekniker inom de befintliga Python-versionerna. Du kan dra nytta av Pythons funktioner.
Om författaren
Wini Bhalla (61 artiklar publicerade)
Wini är en Delhi-baserad författare, med 2 års erfarenhet av att skriva. Under sina skrivande har hon varit knuten till digitala marknadsföringsbyråer och tekniska företag. Hon har skrivit innehåll relaterat till programmeringsspråk, molnteknik, AWS, Machine Learning och mycket mer. I henne free tid, hon gillar att måla, umgås med sin familj och resa till bergen när det är möjligt.
Mer från Wini Bhalla
Prenumerera på vårt nyhetsbrev
Gå med i vårt nyhetsbrev för tekniska tips, recensioner, free e-böcker och exklusiva erbjudanden!
Klicka här för att prenumerera
