Python

Python Traceback-zelfstudie

Python Traceback-zelfstudie
Zodra een uitzondering is gemaakt tijdens het uitvoeren van de code, geeft Python een traceback weer. Een traceback lijkt een rapport in Python te zijn dat de functieaanroepen bevat die op een bepaalde plaats in de code zijn gedaan, i.e., zodra u een fout heeft, wordt gesuggereerd dat we deze achterstevoren laten vallen (traceback). De traceback kan details geven over wat er met de code is gebeurd als de code een fout ontvangt. Dergelijke tracebacks zien er misschien een beetje vermoeiend uit, maar ze kunnen echt nuttig zijn totdat je het uitkleedt en ziet wat het je probeert te leren. Er zijn veel gegevens in de Python-traceback die u zullen helpen bij het analyseren en corrigeren van de oorzaak van het probleem dat in uw code wordt gegenereerd.

Interpreteer de Traceback:

Het bekijken van enkele tracebacks kan een betere interpretatie geven van de kennis die ze bieden, zodat u er iets uit kunt halen. Laten we eens kijken naar de interpretatie van hoe een basisuitzondering traceback kan zijn. Hier is een voorbeeld van een eenvoudige code die een traceerfout genereert in de uitvoering van Spyder (Python 3).

Hieronder is de fout traceback afbeelding:. De eerste regel toont de bestandslocatie. Hier zijn enkele specificaties voor alle lijnen die kleuren gebruiken:.

Wit: Traceback (meest recente oproep als laatste) is een traceback-instructie. Aan de andere kant toont het witte gedeelte van de laatste regel de gerelateerde foutinformatie.

Groen: Het vertellen van een bestandsnaam en locatie heeft een fout.

Blauw: Toont het regelnummer van een bestand waar de fout is opgetreden.

Geel: Het toont de eigenlijke regel waar een uitzondering verscheen.

Rood: Type fout.

Hier zijn een paar belangrijke fouten in de traceback:

Naamfout
Indexfout
Sleutelfout
Typefout
waardeFout
ImportError /ModuleNotFound

Naamfout:
Wanneer u een variabele wilt interpreteren die niet in de code is gespecificeerd, verschijnt NameError. Hier is een eenvoudig voorbeeld van NameError traceback:. We hebben een variabele 'aantal' gedefinieerd met enige waarde, terwijl in de afdrukken verklaring, we hebben gedrukt 'verdoven', die nergens in de code is gedefinieerd. Laten we deze code uitvoeren en kijken wat er gebeurt.

U kunt zien dat de NameError-traceback is opgetreden omdat we de variabele 'numb' niet hebben gedefinieerd, dus hoe kan deze worden afgedrukt. Daarom toont dit programma de NameError en werkt deze uit met extra informatie op de laatste regel met witte en rode tekst. Gele tekst toont de exacte code waar de fout optreedt.

Indexfout:

Een IndexError wordt geproduceerd wanneer een reeks die buiten bereik is, is gedefinieerd in de code. We hebben gedefinieerd a lijst genaamd 'nieuw' hebben 5 indexen met enkele waarden erin. Daarna moeten we de printopdracht geven om de waarde uit te voeren op inhoudsopgave aantal 9.

Wanneer we deze code uitvoeren, genereert het IndexError definiërende index buiten bereik. Omdat we een lijst van 5 indexen hebben gedefinieerd, is daarom het afgedrukte indexnummer, dat 9 is, niet toegankelijk omdat het niet in ons bereik is.

Sleutelfout:

Python genereert een sleutelfout wanneer u probeert de . te bereiken sleutel wat is? niet gedefinieerd of in kaart gebracht, vooral van a woordenboek. Het lijkt meer op een IndexError. Laten we dus eens kijken naar een eenvoudig voorbeeld van een woordenboek met de naam 'willekeurig' met twee sleutels erin gedefinieerd met enkele waarden toegewezen aan deze sleutels. Op de volgende regel hebben we de sleutel met de naam afgedrukt 'EEN' in de printopdracht.

Oh! We hebben traceback KeyError. Dit komt door de verkeerde sleutel die is opgegeven in de printopdracht, die niet is gedefinieerd in het woordenboek. Men kan een fout maken door een hoofdlettersleutel op te geven terwijl het woordenboek een kleine lettersleutel heeft gedefinieerd small.

Typefout:

TypeError wordt gedefinieerd als een uitzondering die optreedt wanneer een bewerking of methode is uitgesmeerd tot een ongepast type van een entiteit of variabele. We hebben een voorbeeld van een eenvoudige variabele die twee waarden aanneemt, terwijl deze string beide waarden optelt. De eerste waarde is een tekenreekstype en de andere is een geheel getal. De printopdracht drukt het resultaat van de toevoeging af.

Wanneer deze code wordt uitgevoerd, wordt de uitzondering gegenereerd. Deze uitzondering heeft alles te maken met het verkeerde type object dat wordt aaneengeschakeld. Het is ingewikkeld dat u geen variabele van het stringtype kunt toevoegen met een variabele van het type integer.

Waarde Fout:

Waarde Fout wordt gedefinieerd als een uitzondering die alleen optreedt wanneer sommige ingebouwde methode neemt de juiste type argument maar de verkeerde waarde in het. Laten we een klein voorbeeld bekijken. We nemen een ingebouwde methode van: int() met een tekenreekswaarde in een printinstructie.

Wanneer u deze éénregelige code uitvoert, genereert deze een ValueError omdat we een functie van het type integer gebruiken terwijl we deze een tekenreekswaarde geven die moet worden uitgevoerd. Daarom zal het laten zien dat de functie int() een ongeldige waarde bevat.

Aan de andere kant, als je het een fractionele waarde geeft, zal het het omzetten in een geheel getal.

Deze code voert 11 uit omdat alleen het gehele deel nodig is, terwijl het decimale deel volledig wordt genegeerd.

Importfout/module niet gevonden:

Soms moet je importeren sommige pakketten of modules in uw python-code om speciale functionaliteiten via hen te gebruiken. U vindt een ImportError-traceback wanneer deze enigszins onjuist is over een Import-instructie in de code. Deze traceback-fout treedt op wanneer u: niet in staat naar vind de specifieke module of iets uit het pakket. Hier hebben we twee modules geïmporteerd, 'Pip' en 'Java', in onze code.

Tijdens het uitvoeren van deze code geeft ModuleNotFoundError traceback. Dit komt omdat de geïmporteerde module 'java' niet wordt ondersteund door de python-bibliotheek. Aan de andere kant geeft het geen uitzondering bij het importeren van de 'pip'-module omdat het een door Python ondersteunde module is.

Conclusie:

De Python-traceback biedt uitstekende kennis die u zal helpen erachter te komen wat er niet klopt in de code. Of je dit nu voor de eerste keer doet of gewoon niet begrijpt wat het doet, de traceback-generatie kan een beetje ontmoedigend zijn. Om een ​​sterkere Python-programmeur te worden, is het belangrijk om te leren welke details een Python-traceback geeft.

OSD-overlay tonen in Linux-apps en -games op volledig scherm
Het spelen van games op volledig scherm of het gebruik van apps in de modus volledig scherm zonder afleiding kan u afsnijden van relevante systeeminfo...
Top 5 Game Capture-kaarten
We hebben allemaal gezien en genoten van streaming gameplays op YouTube. PewDiePie, Jakesepticye en Markiplier zijn slechts enkele van de beste gamers...
Hoe een spel op Linux te ontwikkelen
Tien jaar geleden zouden niet veel Linux-gebruikers voorspellen dat hun favoriete besturingssysteem ooit een populair spelplatform voor commerciële vi...