Ko programiraš z Python, si verjetno že naletel na napake. Včasih je enostavno prepoznati, vendar je pri bolj kompleksnih aplikacijah odpravljanje napak lahko izziv. Tu pride v igro Pythonov debugger, znan tudi kot PDB. S tem lahko preveriš stanje svojega programa kadarkoli, preučuješ vrednosti spremenljivk in ugotoviš, kaj je šlo narobe. V tem vodiču se boš naučil, kako učinkovito uporabljati PDB-debugger za optimizacijo svojih Python projektov.

Najpomembnejše ugotovitve

  • PDB-debugger ti omogoča, da kodo prehajaš korak za korakom.
  • Funkcija pdb.set_trace() ti omogoča, da ustaviš postopek odpravljanja napak na katerikoli točki v kodi.
  • Lahko preučuješ spremenljivke, interaktivno izvajaš kodo in tako enostavno prepoznavaš napake.

Navodila korak za korakom

Uvoz modula PDB

Za uporabo debuggera moraš uvoziti modul PDB. To narediš z ukazom import pdb. Postavitev breakpointa na začetku svoje kode ti olajša preverjanje izvajanja na kateri koli točki.

Obvladovanje Python-Debuggerja s PDB

Definiranje spremenljivk

Zdaj definiraš nekaj spremenljivk za svojo aplikacijo. Na primer, ustvari seznam a z vrednostmi in dve dodatni spremenljivki b in c, ki predstavljata preproste cele števile. S tem lahko opraviš različne izračune in opazuješ rezultate.

Obvladovanje Python-Debuggerja z PDB

Izvedi preprost izračun

Izvedi preprost izračun, na primer seštevanje b in c. To je preprost korak, da se prepričaš, da koda deluje kot pričakovano. Pričakovani izhod bi moral biti 18, če sešteješ b (5) in c (13).

Obvladovanje Python-debuggerja s PDB

Obravnava napak

Zdaj se pojavi napaka, ko poskusiš dodati seznam a k celotnemu številu b. Python bo izdal TypeError, ki nakazuje, da poskušaš povezati seznam z integerjem. To lahko na začetku povzroči zmedo, še posebej v večjem programu.

Obvladovanje Python-Debuggerja z PDB

Uporaba pdb.set_trace()

Da bi izvedel več o vzroku napake, pred problematično vrstico dodaš ukaz pdb.set_trace(). Ko zdaj izvajaš kodo, se izvajanje ustavi natančno na tej točki. To ti daje možnost, da začneš interakcijo s kodo in vidiš, kaj dejansko vsebujejo spremenljivke.

Obvladovanje Python debuggerja s PDB

Preučevanje spremenljivk

Ko je izvajanje ustavljeno, lahko preučiš različne spremenljivke. Tako lahko preveriš, katere vrednosti so jim dodeljene. Če preprosto vpišeš ime spremenljivke v terminal, vidiš trenutno vrednost. Na primer, če preneseš a, dobiš seznam, ki si ga definiral na začetku.

Testiranje izrazov

Poleg spremenljivk lahko v debuggerju tudi testiraš kodne izraze. Na primer, lahko poskusiš b + b, da vidiš, kaj se zgodi. To te lahko pripelje do morebitnih logičnih napak v tvoji kodi, ali pa enostavno poskusiš izvesti print(b), da vidiš izhod neposredno.

Obvladovanje Python-Debuggerja s PDB

Dodatne možnosti uporabe

PDB-debugger ponuja še veliko drugih funkcionalnosti, ki jih lahko prebereš v uradni dokumentaciji. Še posebej raznolikost interaktivnih možnosti to orodje naredi izjemno uporabno. Oglej si torej, katere druge funkcije modul ponuja in kako jih lahko uporabiš za svoje programe.

Obvladovanje Python-debuggerja z PDB

Zaključek procesa odpravljanja napak

Ko si zbral vse potrebne informacije, lahko končaš postopek odpravljanja napak in preideš na naslednji del svoje kode. Ne pozabi, da lahko kadar koli uporabiš pdb.set_trace(), da ustaviš izvajanje svojega programa na določeni točki in preučiš spremenljivke.

Povzetek

Vsakdo s PDB-debuggerjem imaš močno orodje v rokah, ki poenostavi odpravljanje napak v tvojih Python projektih. S pdb.set_trace() lahko prekineš kodo, preučuješ spremenljivke in preverjaš trenutno stanje programa. Te tehnike so še posebej koristne, ko delaš na bolj kompleksnih aplikacijah in želiš obdržati pregled.

Pogosto zastavljena vprašanja

Kaj je PDB?PDB je Pythonov debugger, s katerim lahko izvajaš odpravljanje napak v Python kodi.

Kako uvoziti modul PDB?Uvoziš PDB tako, da na začetek svojega skripta postaviš import pdb.

Kaj počne funkcija pdb.set_trace()?S to funkcijo lahko ustaviš izvajanje kode in preučiš trenutne vrednosti spremenljivk.

Ali lahko izračune izvajam v debuggerju?Da, kadar koli lahko izvajaš ukaze in preučuješ spremenljivke, medtem ko si v debuggerju.

Kje najdem dodatne informacije o modulu PDB?Dodatne informacije najdeš v uradni Python dokumentaciji na doc.python.org.