Piton

Python Traceback bemutató

Python Traceback bemutató
Miután létrehozott egy kivételt a kód végrehajtása közben, a Python megjelenít egy nyomkövetést. Úgy tűnik, hogy a traceback egy olyan jelentés a Pythonban, amely tartalmazza a kód egy bizonyos helyén végrehajtott függvényhívásokat, azaz.e., ha hibája van, azt javasoljuk, hogy dobjuk vissza (traceback). A visszakeresés részleteket adhat arról, hogy mi ment le a kóddal, ha a kód hibát kap. Az ilyen nyomkövetések kissé kimerítőnek tűnhetnek, de nagyon hasznosak lehetnek, amíg le nem vetkőzik és meg nem látja, mit próbál tanítani. Sok olyan adat található a Python traceback-ben, amely segít elemezni és kijavítani a kódban generált probléma okát.

A Traceback értelmezése:

Néhány visszakeresés áttekintheti az általuk nyújtott tudás jobb értelmezését annak érdekében, hogy valamit kihozhasson belőle. Vessünk egy pillantást annak értelmezésére, hogy miként lehet az alapvető kivétel a nyomon követés. Íme egy példa egy egyszerű kódra, amely visszakeresési hibát generál a Spyder végrehajtásában (Python 3).

Az alábbiakban a hiba követési kép található. Az első sor a fájl helyét mutatja. Íme néhány specifikáció a színeket használó összes vonalon.

Fehér: A Traceback (a legutóbbi hívás utoljára) egy traceback utasítás. Másrészt az utolsó sor fehér része a kapcsolódó hibainformációkat mutatja.

Zöld: A fájlnév és a hely megadásakor hiba történt.

Kék: Megmutatja egy fájl sorszámát, ahol a hiba történt.

Sárga: Megjeleníti a tényleges sort, ahol kivétel jelent meg.

Piros: A hiba típusa.

Íme néhány fontos hiba a visszakeresésben:

NameError
IndexError
KeyError
TypeError
valueError
ImportError / ModuleNotFound

Név hiba:
Amikor egy olyan változót akar értelmezni, amelyet nem adott meg a kód, a NameError jelenik meg. Itt van egy egyszerű példa a NameError visszakeresésre. Van egy változónk 'szám' valamilyen értékkel definiálva, míg a nyomtatás nyilatkozatot, kinyomtattuk 'zsibbadt', ami a kódban sehol nincs meghatározva. Futtassuk ezt a kódot, és ellenőrizzük, mi történik.

Láthatja, hogy a NameError traceback megtörtént, mivel nem definiáltuk a 'numb' változót, így hogyan lehet kinyomtatni. Éppen ezért ez a program megmutatja a NameError szót, és további információkkal bővíti ki az utolsó sort fehér és piros szöveggel. Sárga szöveg mutatja a hiba pontos kódját.

Index hiba:

Az IndexError akkor kerül előállításra, ha a kódban egy sorozatot határoz meg, amely nem elérhető. Meghatároztuk a lista nevezett 'új' miután 5 index néhány értékkel benne. Ezt követően meg kell adnunk a print parancsot az érték kimenetéhez index szám 9.

Amikor végrehajtjuk ezt a kódot, az IndexError meghatározó indexet generál a tartományon kívülre. Mivel definiáltunk egy 5 indexből álló listát, ezért a kinyomtatott indexszám, amely 9, nem fér hozzá, mert nem tartozik a tartományunkba.

Kulcs hiba:

A Python kulcshibát generál, amikor megpróbálja elérni a kulcs ami nem meghatározott vagy feltérképezve, főleg a szótár. Inkább olyan, mint egy IndexError. Vessünk egy pillantást a nevű szótár egyszerű példájára 'véletlen' két kulccsal definiálva, amelyekhez néhány értéket rendelnek. A következő sorra kinyomtattuk a megnevezett kulcsot „A” a nyomtatott nyilatkozatban.

Oh! Megvan a traceback KeyError. Ennek oka a nyomtatási utasításban megadott rossz kulcs, amelyet a szótár nem határoz meg. Tévedhet nagybetűs kulcs megadásával, miközben a szótárban egy kisbetűs kulcs van megadva.

Típushiba:

A TypeError olyan kivételként definiálható, amely akkor következik be, amikor valamilyen műveletet vagy módszert bekentek egy alkalmatlan típus egy entitás vagy változó értéke. Van egy példa egy egyszerű változóra, amely két értéket vesz fel, miközben ez a karakterlánc mindkét értéket hozzáadja. Az első érték egy string típusú, a másik pedig egy egész típusú. A nyomtatási utasítás kinyomtatja az összeadás eredményét.

Amikor ezt a kódot végrehajtják, felveti a kivételt. Ez a kivétel arról szól, hogy a rossz típusú objektumokat összefűzik. Kifogásolja, hogy nem adhat hozzá string típusú változót egész típusú változóhoz.

Érték hiba:

Az Értékhibát kivételként definiálják, amely csak akkor fordul elő, ha néhány beépített módszer veszi a megfelelő típusú érv de a rossz érték benne. Nézzünk meg egy kis példát. Beépített módszert alkalmazunk int () néhány string értékkel egy nyomtatott utasításban.

Amikor végrehajtja ezt az egysoros kódot, az egy ValueError-t generál, mert egy egész típusú függvényt használunk, miközben egy string értéket adunk végrehajtásra. Ezért fogja megmutatni, hogy az int () függvénynek érvénytelen értéke van.

Másrészről, ha adsz neki valami tört értéket, akkor egész számra konvertálja.

Ez a kód kiadja a 11-et, mert csak az egész részt veszi, míg a tizedes részt teljesen figyelmen kívül hagyják.

Importálási hiba / modul nem található:

Néha muszáj import néhány csomag vagy modulok a python kódban, hogy speciális funkciókat használjon rajtuk keresztül. Az ImportError visszakeresést akkor találja meg, ha kissé hibás egy Import utasítás a kódban. Ez a visszakeresési hiba akkor fordul elő, amikor Ön van képtelen nak nek megtalálja az adott modul vagy valami a csomag belsejéből. Itt két modult importáltunk, 'csipog' és 'Jáva', kódunkban.

A kód végrehajtása közben a ModuleNotFoundError nyomon követhető lesz. Ennek oka, hogy az importált „java” modult a python könyvtár nem támogatja. Másrészt nem ad kivételt a 'pip' modul importálása miatt, mivel Python által támogatott modul.

Következtetés:

A Python traceback kiváló ismereteket nyújt, amelyek segítenek kitalálni, mi történik helytelenül a kódban. Akár ezt csinálod először, vagy csak nem érted, hogy mit csinál, a traceback generáció kissé ijesztő lehet. Ahhoz, hogy erősebb Python programozóvá válhasson, fontos megismerni, milyen részleteket ad a Python nyomkövető.

Kereskedelmi játékmotorok nyílt forráskódú portjai
Ingyenes, nyílt forráskódú és platformokon átívelő játékmotorok szabadidős programjai felhasználhatók a régi, valamint a meglehetősen friss játékcímek...
A legjobb parancssori játékok Linuxhoz
A parancssor nem csak a legnagyobb szövetséges a Linux használatakor, hanem a szórakozás forrása is lehet, mert sok olyan szórakoztató játék lejátszás...
A legjobb Gamepad Mapping alkalmazások Linuxhoz
Ha egy tipikus billentyűzet és egér beviteli rendszer helyett szeretnél játékokat játszani Linuxon egy játékvezérlővel, van néhány hasznos alkalmazás ...