Python

Výukový program pre Python Traceback

Výukový program pre Python Traceback
Po vytvorení výnimky počas vykonávania kódu Python zobrazí spätné sledovanie. Spätné sledovanie sa javí ako správa v Pythone, ktorá obsahuje volania funkcií uskutočnené na určitom mieste v kóde, t.j.e., keď už máte chybu, navrhuje sa nám ju vypustiť dozadu (spätné sledovanie). Spätné sledovanie môže poskytnúť podrobnosti o tom, čo šlo s kódom, ak sa v kóde vyskytne chyba. Takéto spätné sledovanie môže vyzerať trochu vyčerpávajúco, ale môže byť skutočne užitočné, kým ho nezrušíte a nezistíte, čo sa vás snaží naučiť. V spätnom sledovaní Pythonu je veľa údajov, ktoré vám pomôžu analyzovať a opraviť príčinu problému generovaného vo vašom kóde.

Interpretovať Traceback:

Prezeranie niektorých spätných väzieb môže poskytnúť lepšiu interpretáciu znalostí, ktoré poskytujú, aby vám z toho niečo pomohlo. Poďme sa pozrieť na interpretáciu toho, ako môže byť základnou výnimkou spätné sledovanie. Tu je príklad jednoduchého kódu generujúceho chybu spätného sledovania pri vykonávaní Spydera (Python 3).

Nižšie je uvedený obrázok spätného sledovania chýb. Prvý riadok zobrazuje umiestnenie súboru. Tu je niekoľko špecifikácií pre všetky riadky používajúce farby.

Biely: Traceback (posledný hovor ako posledný) je príkaz spätného sledovania. Na druhej strane, biela časť posledného riadku zobrazuje súvisiace informácie o chybe.

Zelená: Vyslovenie názvu súboru a umiestnenia obsahuje chybu.

Modrá: Zobrazuje číslo riadku súboru, v ktorom došlo k chybe.

Žltá: Zobrazí skutočný riadok, na ktorom sa vyskytla výnimka.

Červená: Typ chyby.

Tu je niekoľko dôležitých chýb v spätnom sledovaní:

NameError
IndexError
KeyError
TypeError
valueError
ImportError / ModuleNotFound

Chyba názvu:
Kedykoľvek chcete interpretovať premennú, ktorá nebola uvedená v kóde, objaví sa NameError. Tu je jednoduchý príklad spätného sledovania NameError. Máme premennú 'number' definované s určitou hodnotou, zatiaľ čo v tlačiť výpis, máme vytlačené „znecitlivený“, ktorý nie je nikde v kóde definovaný. Spustíme tento kód a skontrolujeme, čo sa stane.

Môžete vidieť, že došlo k spätnému sledovaniu NameError, pretože sme nedefinovali premennú 'numb', tak ako ju možno vytlačiť. Preto tento program zobrazuje NameError a na poslednom riadku s bielym a červeným textom ich spracuje s ďalšími informáciami. Žltý text zobrazuje presný kód, kde sa chyba vyskytla.

Chyba indexu:

IndexError sa vytvorí, keď je v kóde definovaná séria, ktorá je mimo dosahu. Definovali sme a zoznam menovaný 'Nový' majúce 5 indexov s niektorými hodnotami v ňom. Potom musíme uviesť príkaz print, aby sa hodnota zobrazila na index číslo 9.

Keď tento kód vykonáme, vygeneruje index definujúci IndexError mimo rozsahu. Pretože sme definovali zoznam 5 indexov, preto vytlačené číslo indexu, ktoré je 9, nemá prístup, pretože nie je v našom rozsahu.

Chyba kľúča:

Pri pokuse o dosiahnutie kódu Python generuje kľúčovú chybu kľúč ktorý je nie je definované alebo zmapované, najmä z a slovník. Je to skôr ako IndexError. Poďme sa teda pozrieť na jednoduchý príklad pomenovaného slovníka „náhodný“ s dvoma kľúčmi v ňom definovanými a niektorými hodnotami priradeným týmto kľúčom. Na ďalší riadok sme vytlačili pomenovaný kľúč „A“ v tlačovom výkaze.

Oh! Máme spätnú spätnú väzbu KeyError. Je to spôsobené nesprávnym kľúčom poskytnutým vo vyhlásení o tlači, ktorý nie je definovaný v slovníku. Niekto môže urobiť chybu tým, že zadá kláves s veľkým písmenom, zatiaľ čo slovník má v sebe definovaný kláves s malými písmenami.

Chyba typu:

TypeError je definovaná ako výnimka, ktorá nastane, keď bola nejaká operácia alebo metóda rozmazaná nevhodný typ entity alebo premennej. Máme príklad jednoduchej premennej, ktorá berie dve hodnoty, zatiaľ čo tento reťazec pridáva obe hodnoty. Prvá hodnota je typ reťazca a druhá je celočíselný typ. Tlačový výpis tlačí výsledok pridania.

Keď sa tento kód vykoná, vyvolá to výnimku. Táto výnimka sa týka nesprávneho typu spájaného objektu. Vypracúva sa, že nemôžete pridať premennú typu reťazca s premennou typu celé číslo.

Chyba hodnoty:

Hodnota chyby je definovaná ako výnimka, ku ktorej dôjde iba v prípade, že k nej dôjde zabudovaná metóda berie argument správneho typu ale nesprávna hodnota v tom. Pozrime sa na malý príklad. Berieme vstavanú metódu int () s určitou hodnotou reťazca v tlačovom vyhlásení.

Keď spustíte tento jednoriadkový kód, vygeneruje ValueError, pretože používame funkciu celočíselného typu a dávame jej hodnotu reťazca, ktorá sa má vykonať. Preto sa ukáže, že funkcia int () má v sebe neplatnú hodnotu.

Na druhej strane, ak mu dáte zlomkovú hodnotu, prevedie ju na celočíselnú hodnotu.

Tento kód má výstup 11, pretože zaberá iba celočíselnú časť, zatiaľ čo desatinná časť je úplne ignorovaná.

Chyba importu / Modul nebol nájdený:

Niekedy musíte dovoz nejaké balíčky príp modulov vo svojom pythonovom kóde používať cez ne špeciálne funkcie. Spätné sledovanie ImportError nájdete, keď sa jedná o chybný údaj o príkaze Import v kóde. K tejto chybe spätného sledovania dochádza, keď ste neschopný do Nájsť konkrétny modul alebo niečo z balíka. Tu sme importovali dva moduly, 'pip' a „java“, v našom kóde.

Počas vykonávania tohto kódu poskytne ModuleNotFoundError spätné sledovanie. Je to tak preto, lebo importovaný modul „java“ nie je knižnicou python podporovaný. Na druhej strane však nedáva výnimku pri importe modulu „pip“, pretože ide o modul podporovaný Pythonom.

Záver:

Spätné sledovanie Pythonu poskytuje vynikajúce znalosti, ktoré vám pomôžu zistiť, čo sa v kóde deje nesprávne. Či už to robíte prvýkrát alebo len nerozumiete tomu, čo robí, generovanie spätného sledovania môže byť trochu skľučujúce. Aby ste sa stali silnejším programátorom Pythonu, je dôležité naučiť sa, aké podrobnosti poskytuje spätné sledovanie Pythonu.

Hry Ako inštalovať a hrať Doom na Linuxe
Ako inštalovať a hrať Doom na Linuxe
Úvod do Doom Séria Doom vznikla v 90. rokoch po vydaní pôvodného Doomu. Bol to okamžitý hit a od tej doby herná séria získala množstvo ocenení a origi...
Hry Vulkan pre používateľov systému Linux
Vulkan pre používateľov systému Linux
S každou novou generáciou grafických kariet vidíme, že vývojári hier posúvajú hranice grafickej vernosti a prichádzajú o krok bližšie k fotorealizmu. ...
Hry OpenTTD vs Simutrans
OpenTTD vs Simutrans
Vytvorenie vlastnej simulácie dopravy môže byť zábavné, relaxačné a mimoriadne lákavé. Preto sa musíte uistiť, že vyskúšate čo najviac hier, aby ste n...