Ako si s Python programoval, pravdepodobne si sa už niekedy stretol s chybami. Niekedy je jednoduché ich identifikovať, ale pri zložitejších aplikáciách môže byť ladanie výzvou. Tu prichádza do hry Python debugger, známy aj ako PDB. S ním môžeš overiť stav svojho programu v ktoromkoľvek momente, prezerať hodnoty premenných a zistiť, čo sa pokazilo. V tejto príručke sa naučíš, ako efektívne využiť PDB debugger na optimalizáciu svojich Python projektov.

Najdôležitejšie zistenia

  • PDB debugger ti umožňuje prechádzať kód krok za krokom.
  • Pomocou funkcie pdb.set_trace() môžeš zastaviť proces ladenia v ktoromkoľvek bode kódu.
  • Môžeš prezerať premenné, interaktívne vykonávať kód a tak ľahko identifikovať chyby.

Príručka krok za krokom

Importovanie modulu PDB

Na využívanie debuggeru musíš importovať modul PDB. To sa robí príkazom import pdb. Nastavenie bodu prerušenia na začiatku tvojho kódu ti uľahčuje kontrolu vykonávania v ktoromkoľvek bode.

Majstrovstvo Python debuggra s PDB

Definovanie premenných

Teraz definuješ niektoré premenné pre svoju aplikáciu. Vytvor napríklad zoznam a s hodnotami a dve ďalšie premenné b a c, ktoré reprezentujú jednoduché celé čísla. Tým môžeš vykonávať rôzne výpočty a sledovať výsledky.

Ovládanie Python debuggera s PDB

Vykonanie jednoduchého výpočtu

Vykonaj jednoduchý výpočet, napríklad sčítanie b a c. Toto je jednoduchý krok na overenie, že kód funguje, ako sa očakáva. Očakávaný výstup by mal byť 18, keď sčítaš b (5) a c (13).

Majstrovstvo Python debuggera s PDB

Spracovanie chýb

Teraz nastane chyba, keď sa pokúsiš sčítať zoznam a s celé číslo b. Python vyprodukuje TypeError, ktorý ukazuje, že sa pokúšaš zkombinovať zoznam s celým číslom. To môže na začiatku spôsobiť zmätok, najmä v väčšom programe.

Majstri Python-debuggera s PDB

Použitie pdb.set_trace()

Aby si zistil viac o príčine chyby, pridáš príkaz pdb.set_trace() pred problematický riadok. Ak teraz spustíš kód, vykonávanie sa zastaví presne na tomto bode. To ti dá možnosť interagovať s kódom a vidieť, čo premenné skutočne obsahujú.

Majstrovstvo Python debuggera s PDB

Prezretie premenných

Akonáhle je vykonávanie zastavené, môžeš prezerať rôzne premenné. Tým môžeš skontrolovať, aké hodnoty sú im priradené. Ak jednoducho zadáš názov premennej do terminálu, uvidíš aktuálnu hodnotu. Napríklad, ak zadáš a, dostaneš zoznam, ktorý si definoval na začiatku.

Testovanie výrazov

Navyše k premenným môžeš v debugu testovať aj výrazy kódu. Napríklad môžeš skúsiť b + b, aby si videl, čo sa stane. To ťa upozorní na prípadné logické chyby v tvojom kóde, alebo môžeš jednoducho skúsiť vykonať print(b), aby si videl výsledok priamo.

Majsterovanie Python debuggeru s PDB

Ďalšie možnosti využitia

PDB debugger ponúka mnoho ďalších funkcií, ktoré môžeš nájsť v oficiálnej dokumentácii. Osobitne rôznorodosť interaktívnych možností robí tento nástroj veľmi užitočným. Pozri sa, aké ďalšie funkcie modul ponúka a ako ich môžeš využiť pre svoje programy.

Ovládanie Python-Debuggera s PDB

Ukončenie procesu ladenia

Keď si zhromaždil všetky potrebné informácie, môžeš ukončiť proces ladenia a pokračovať s ďalšou časťou svojho kódu. Pamätaj, že môžeš kedykoľvek použiť pdb.set_trace(), aby si zastavil vykonávanie svojho programu v určitom bode a prezrel premenné.

Zhrnutie

Pomocou PDB debuggeru máš mocný nástroj na to, aby si uľahčil odstránenie chýb vo svojich Python projektoch. S pdb.set_trace() môžeš prerušiť kód, prezerať premenné a kontrolovať aktuálny stav programu. Tieto techniky sú obzvlášť užitočné, keď pracuješ na zložitejších aplikáciách a chceš si udržať prehľad.

Často kladené otázky

Čo je PDB?PDB je Python debugger, s ktorým môžeš vykonávať ladění Python kódu.

Ako importujem modul PDB?Modul PDB importuješ tak, že vložíš import pdb na začiatok svojho skriptu.

Čo robí funkcia pdb.set_trace()?Pomocou tejto funkcie môžeš zastaviť vykonávanie kódu a prezerať aktuálne hodnoty premenných.

Môžem vykonávať výpočty v debugeri?Áno, môžeš kedykoľvek vykonávať príkazy a prezerať premenné, keď si v debugeri.

Kde nájdem ďalšie informácie o PDB module?Ďalšie informácie nájdeš v oficiálnej dokumentácii Python na doc.python.org.