Python 3.10 gaat er prat op een van de meest stabiele versies te zijn die beschikbaar zijn voor gebruikers om te downloaden, en zal later dit jaar worden uitgebracht. De nieuw uitgebrachte versie zal met veel merkbare veranderingen komen, zoals gebruiksvriendelijke functionaliteiten voor zowel beginnende als ervaren programmeurs.

De opvallende verbeteringen in de nieuwe Python-versie omvatten de introductie van een structureel patroon matching, betere foutmeldingen, nieuwe union-operators, nauwkeurige regelnummers voor debuggen, en nog veel meer meer.

Dit is wat u moet weten over Python 3.10:

Structurele patroonafstemming in Python 3.10

Structural Pattern Matching maakt het schrijven van code een makkie en het blijft een van de prominente hoogtepunten van de nieuwste Python-versie. Python heeft tot doel de reeds bestaande matchcase-statements in de vorige versies van de programmeertaal te verbeteren. Het heeft een update gemaakt van de bestaande match-case-statements in Python.

Laten we een snelle blik werpen op de implementaties van Structural Pattern Matching:

instagram viewer

De match-case-statement maakt al een tijdje deel uit van de Python-taal. Deze verklaring wordt in principe gebruikt om het vervelende werk van het schrijven van de als-anders verklaring meerdere keren.

U kunt matchen met objecten met vergelijkbare eigenschappen met behulp van deze functie in de nieuwe build.

match media_object:
zaak afbeelding (type = "jpg"):
# Retourneer zoals het is
return media_object
case-afbeelding (type="png") | Afbeelding (type = "gif"):
return render_as (media_object, "jpg")
geval Video():
raise ValueError("Kan nog geen frames uit video halen")
geval ander_type:
raise Exception (f"Mediatype {media_object} kan nog niet worden verwerkt")

De nieuwe python-bibliotheek herkent objecten zoals jpg, gif en video's. Deze code kan naadloos worden uitgevoerd zonder een fout te veroorzaken.

2. Verbeterde foutmeldingen

Elke codeur begrijpt waarschijnlijk het belang van fouten bij het schrijven van code, en hoe irritant sommige soorten fouten kunnen zijn. De vorige versies van Python gaven foutmeldingen zodra er problemen waren in de syntax. Deze kunnen onder andere te wijten zijn aan de verkeerde syntaxis, ontbrekende trefwoorden, onjuiste of verkeerd gespelde trefwoorden.

Deze foutmeldingen waren verre van perfect omdat het voor beginners (soms zelfs gevorderde gebruikers) moeilijk werd om de echte oorzaak van de fout in hun codes te achterhalen. Als programmeur blijft Google uw bondgenoot bij het ontcijferen van de reden achter verschillende foutmeldingen.

Veel mensen weten bijvoorbeeld niet waarom Python de volgende foutmelding geeft:

 SyntaxError: onverwachte EOF tijdens het parseren van foutmelding.

Het gebrek aan duidelijkheid in dergelijke verklaringen bracht de nieuwste Python-versie ertoe om de bestaande reeks foutmeldingen te verbeteren.

De oudere berichten zijn vervangen door gemakkelijk te begrijpen foutmeldingen zoals:

{was nooit gesloten onverwachte EOF tijdens het parseren

Nog enkele wijzigingen zijn:

Attribuut fouten zoals:

uit collecties import nametoplo

module 'collections' heeft geen attribuut 'namedtoplo'. Bedoelde je: benoemde?

NameError-berichten worden gewijzigd om er als volgt uit te zien:

nieuwe_var = 5
print (new_vr)>

NameError: naam 'new_vr' is niet gedefinieerd. Bedoelde je: new_var?

3. Contextmanagers tussen haakjes

De nieuwe Parenthesized Context Managers kunnen uw code er eleganter uit laten zien. Hoewel het geen belangrijke functie is, kan het je code gemakkelijk minder onhandig maken. Deze functie is handig als u in een team werkt en uw code gestructureerd moet zijn.

Stel je voor dat je een verklaring schrijft als:

met open('file1.txt', 'r') als fin, open('file2.txt', 'w') als fout:
fout.schrijven (fin.lezen())

De bovenstaande code werkt, maar de eerste regel is veel te lang en ziet er onhandig uit. U kunt de regel afbreken met een backslash (\) en laat de code er gestructureerd uitzien:

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

Met de introductie van de nieuwe Contextmanager tussen haakjes, kun je de regel ook doorbreken met haakjes:

met (open('file1.txt', 'r') als fin,
open('file2.txt', 'w') als fout):
fout.schrijven (fin.lezen())

Verwant: Ideeën voor Python-projecten die geschikt zijn voor beginners

4. Nieuw type vakbondsoperator

Een kleine maar handige functie in Python 3.10 is het nieuwe type union-operator. Elke Python-release wordt geleverd met een vooraf gedefinieerde set type-hint-functies.

De vakbondsoperator bevat voorwaardelijke logica; bijvoorbeeld, int of vlot kan worden geschreven als Unie[X, Y]. De nieuwe vakbondsoperator kan worden uitgedrukt als: int|zweven ook.

De introductie van een nieuwe union-operand in Python 3.10 is tijdbesparend en zorgt ervoor dat de code er goed gedefinieerd uitziet.

Bijvoorbeeld:

def f (x: int | float) -> float:
retourneer x * 3.142
f (1) # pas
f (1.5) # geslaagd
f('str') # linter zal annotatiefout tonen

Annotatiefout in Python

5. Precieze regelnummers voor foutopsporing

Het is u misschien al vaker opgevallen dat foutopsporing u niet doorverwijst naar de juiste regel waar een fout is opgetreden. Dit maakt het debuggen moeilijk voor programmeurs die net begonnen zijn met het schrijven van code.

De gebrekkige foutopsporing is vooral duidelijk tijdens het schrijven sys.settrace en gerelateerde tools in Python. De nieuwere versie verbetert dit aanzienlijk en u kunt precieze regelnummers zien wanneer er een fout optreedt.

Om een ​​nauwkeuriger regelnummer te geven, verschuift Python 3.10 zijn betrouwbaarheid van de huidige co_Inotab attribuut en gebruikt de nieuwe methode co_lines() attribuut. Dit attribuut werkt zodanig dat de f_lineo bevat altijd het juiste regelnummer.

1. voor (
2. x) in [1]:
3. doorgang
4. opbrengst

Verwant: Debuggen van uw Python-code

6. Uitgestelde evaluatie van annotaties

Binnen Python wordt de evaluatie van typeannotatie uitgevoerd tijdens de functiedefinitie. Dit betekent dat typeannotaties regel voor regel top-down worden geëvalueerd.

Ook al lijkt het misschien de beste optie, er zijn nog steeds twee problemen met deze aanpak:

  • Typehints verwijzen naar typen die nog niet zijn gedefinieerd en niet werken; deze hints moeten worden uitgedrukt als strings.
  • Het importeren van de module vertraagde omdat typehints in realtime worden uitgevoerd.

Om uitvoeringsproblemen te voorkomen, worden annotaties opgeslagen in _annotaties_ en evaluatie wordt samen uitgevoerd. Dit maakt het mogelijk om naar voren te verwijzen aangezien de module-import het eerst wordt uitgevoerd, waardoor de initialisatietijd wordt verkort.

Werken met de nieuwste functies in Python 3.10

De nieuwste versie van Python wordt uitgebracht op 4 oktober 2021; het belooft de bugs op te lossen die aanwezig zijn in de bestaande versies. De volgende versies zullen de huidige 3.10-versie verbeteren.

Structurele patroontoewijzing is het hoogtepunt van deze nieuwe update en maakt het schrijven van codes voor vergelijkbare objecten eenvoudiger. Andere functies, zoals Contextmanagers met haakjes en nieuw type Union Operators, zijn bedoeld om de code eenvoudiger en efficiënter te maken.

Desalniettemin zijn er enkele uitstekende technieken voor het afhandelen van uitzonderingen binnen de bestaande Python-versies. Je kunt goed gebruik maken van de functionaliteiten van Python.

DeelTweetenE-mail
Uitzonderingen afhandelen in Python

Bedek uw coderingsbases met Python-uitzonderingen.

Lees volgende

Gerelateerde onderwerpen
  • Programmeren
  • Programmeren
  • Python
  • Codeertips
Over de auteur
Wini Bhalla (21 artikelen gepubliceerd)

Wini is een schrijver uit Delhi en heeft 2 jaar schrijfervaring. Tijdens haar schrijfstages is ze in verband gebracht met digitale marketingbureaus en technische bedrijven. Ze heeft inhoud geschreven met betrekking tot programmeertalen, cloudtechnologie, AWS, Machine Learning en nog veel meer. In haar vrije tijd houdt ze ervan om te schilderen, tijd door te brengen met haar familie en zoveel mogelijk naar de bergen te reizen.

Meer van Wini Bhalla

Abonneer op onze nieuwsbrief

Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!

Klik hier om je te abonneren