Python

Python Traceback-vejledning

Python Traceback-vejledning
Når en undtagelse er oprettet, mens koden udføres, viser Python et spor. En traceback ser ud til at være en rapport i Python, der inkluderer funktionsopkald foretaget på et bestemt sted i koden, dvs.e., når du først har en fejl, foreslås det, at vi slipper den bagud (traceback). Traceback kan give detaljer om, hvad der gik ned med koden, hvis koden modtager en fejl. Sådanne tracebacks kan se lidt udmattende ud, men de kan være rigtig nyttige, indtil du fjerner det og ser, hvad det prøver at lære dig. Der er mange data i Python-sporingen, der hjælper dig med at analysere og rette årsagen til det problem, der genereres i din kode.

Fortol Traceback:

Når du ser på nogle spor, kan det give en bedre fortolkning af den viden, de giver, så du kan få noget ud af det. Lad os se på fortolkningen af, hvordan en grundlæggende undtagelse kan være sporbar. Her er et eksempel på en simpel kode, der genererer en sporingsfejl i Spyder's udførelse (Python 3).

Nedenfor er fejlsporingsbillede. Første linje viser filplaceringen. Her er nogle specifikationer for alle linjer ved hjælp af farver.

Hvid: Traceback (seneste opkald sidst) er en traceback-erklæring. På den anden side viser den sidste linje hvide del de relaterede fejloplysninger.

Grøn: At fortælle et filnavn og en placering har en fejl.

Blå: Viser linjenummeret på en fil, hvor fejlen har fundet sted.

Gul: Den viser den aktuelle linje, hvor en undtagelse dukkede op.

Rød: Fejltype.

Her er et par vigtige fejl i sporingen:

NameError
IndexError
KeyError
TypeFejl
valueError
ImportError / ModuleNotFound

Navn Fejl:
Når du vil fortolke en variabel, der ikke er specificeret i koden, vises NameError. Her er et let eksempel på sporing af NameError. Vi har en variabel 'nummer' defineret med en vis værdi, mens i Print erklæring, vi har trykt 'følelsesløs', som ikke er defineret nogen steder i koden. Lad os køre denne kode og kontrollere, hvad der sker.

Du kan se sporing af NameError er sket, da vi ikke har defineret variablen 'numb', så hvordan kan den udskrives. Derfor viser dette program NameError og uddyber det med ekstra information på sidste linje med hvid og rød tekst. Gul tekst viser den nøjagtige kode, hvor fejlen opstår.

Indeksfejl:

En IndexError produceres, når en serie, der er uden for rækkevidde, er defineret i koden. Vi har defineret en liste som hedder 'ny' at have 5 indekser med nogle værdier i det. Derefter skal vi angive udskrivningskommandoen for at udlæse værdien ved indeks nummer 9.

Når vi udfører denne kode, genererer den IndexError-definerende indeks uden for området. Som vi har defineret en liste med 5 indekser, er det udskrevne indeksnummer, som er 9, derfor ikke tilgængeligt, fordi det ikke er i vores sortiment.

Nøglefejl:

Python genererer en nøglefejl, når du prøver at nå nøgle som er ikke defineret eller kortlagt, især fra en ordbog. Det ligner mere en IndexError. Så lad os se på et simpelt eksempel på en ordbog, der hedder 'tilfældig' med to nøgler defineret i det med nogle værdier tildelt disse taster. På den næste linje har vi udskrevet den navngivne nøgle 'EN' i udskriftserklæringen.

Åh! Vi har traceback KeyError. Dette skyldes den forkerte nøgle i udskriftserklæringen, som ikke er defineret i ordbogen. Man kan begå en fejl ved at angive en stor bogstavnøgle, mens ordbogen har en lille bogstavnøgle defineret i den.

Type fejl:

TypeError er defineret som en undtagelse, der opstår, når en eller anden operation eller metode er blevet udtværet til en uegnet type af en enhed eller variabel. Vi har et eksempel på en simpel variabel, der tager to værdier, mens denne streng tilføjer begge værdier. Den første værdi er en strengtype, og den anden er en heltalstype. Udskriftserklæringen udskriver resultatet af tilføjelsen.

Når denne kode udføres, hæver den undtagelsen. Denne undtagelse handler om, at den forkerte type objekt sammenkædes. Det er detaljeret, at du ikke kan tilføje en strengtypevariabel med en variabel af heltalstypen.

Værdifejl:

Værdifejl er defineret som en undtagelse, der kun forekommer, når nogle indbygget metode tager højre type argument men forkert værdi i det. Lad os se på et lille eksempel. Vi tager en indbygget metode til int () med en vis strengværdi i en udskriftserklæring.

Når du udfører denne enlinjekode, genererer den en ValueError, fordi vi bruger en heltal-funktion, mens vi giver den en strengværdi, der skal udføres. Derfor viser det, at funktionen int () har en ugyldig værdi i sig.

På den anden side, hvis du giver den en brøkværdi, konverterer den den til et heltal.

Denne kode udsender 11, fordi det kun tager hele talet, mens decimaldelen ignoreres fuldstændigt.

Importfejl / modul blev ikke fundet:

Nogle gange skal du importere nogle pakker eller moduler i din pythonkode for at bruge specielle funktioner gennem dem. Du finder et ImportError-spor, når det er noget fejlagtigt ved en Import-erklæring i koden. Denne traceback-fejl opstår, når du er ude af stand til finde det specifikke modul eller noget inde i pakken. Her har vi importeret to moduler, 'pip' og 'java', i vores kode.

Under udførelse af denne kode vil ModuleNotFoundError blive sporet tilbage. Dette skyldes, at det importerede modul 'java' ikke understøttes af python-biblioteket. På den anden side giver det ikke en undtagelse ved import af 'pip' -modulet, fordi det er Python-understøttet modul.

Konklusion:

Python-sporingen giver fremragende viden, der hjælper dig med at finde ud af, hvad der går forkert i koden. Uanset om du gør dette for første gang eller bare ikke forstår, hvad det laver, kan traceback-generationen være lidt skræmmende. For at blive en stærkere Python-programmør er det vigtigt at lære, hvilke detaljer en Python-traceback giver.

Top 5 spiloptagelseskort
Vi har alle set og elsket streaming af gameplay på YouTube. PewDiePie, Jakesepticye og Markiplier er kun nogle af de bedste spillere, der har tjent mi...
Sådan udvikler du et spil på Linux
For et årti siden ville ikke mange Linux-brugere forudsige, at deres foretrukne operativsystem en dag ville være en populær spilplatform til kommercie...
Open Source-porte med kommercielle spilmotorer
Gratis, open source og cross-platform spilmotorgendringer kan bruges til at spille gamle såvel som nogle af de temmelig nylige spiltitler. Denne artik...