Starting pdb in the REPL

Python bilan kodni tuzatishni o'rganish.

SU

REPL’da pdb ishga tushirish

pdb’dan foydalanishni boshlashning eng yaxshi usuli – uni bajariladigan kodingizga qo‘llashdir. Siz o‘zingizning kodingiz yoki ushbu kitobning boshqa bobidan olingan kod misolidan foydalanishingiz mumkin.

Yoki quyidagi kodni debug_code.py nomli faylga yozib qo‘yishingiz mumkin:

# debug_code.py
 
def log(number):
    print(f'Processing {number}')
    print(f'Adding 2 to number: {number + 2}')
 
def looper(number):
    for i in range(number):
        log(i)
 
if __name__ == '__main__':
    looper(5)

pdb’ni ishga tushirish usullari

pdb’ni ishga tushirish va kodingizga qo‘llashning bir necha usuli mavjud. Yuqoridagi misolda biz terminal (yoki agar siz Windows foydalanuvchisi bo‘lsangiz, cmd.exe)dan foydalanamiz.
Dastlab, fayl saqlangan papkaga o‘ting va terminalda Python-ni ishga tushiring. Bu sizga Python REPL’ni ochadi, unda kodingizni import qilib, pdb’dan foydalanishingiz mumkin.

Misol

Quyidagi ko‘rsatmalarni bajaring:

>>> import debug_code
>>> import pdb
>>> pdb.run('debug_code.looper(5)')
> <string>(1)<module>()
(Pdb) continue
Processing 0
Adding 2 to number: 2
Processing 1
Adding 2 to number: 3
Processing 2
Adding 2 to number: 4
Processing 3
Adding 2 to number: 5
Processing 4
Adding 2 to number: 6

Tushuntirish

  1. Dastlab kodingizni (debug_code) va pdb modulini import qilasiz.
  2. pdb.run() yordamida kodingizni ishlating. Bu yerda debug_code.looper(5) funksiyasini bajarish uchun satr ko‘rinishida uzatiladi. pdb ushbu satrni haqiqiy funksiya chaqiruvi sifatida bajaradi.

Bajarilgandan so‘ng (Pdb) prefiksi bilan satr ko‘rasiz. Bu siz endi debugger (xatolarni tuzatuvchi) muhitida ekanligingizni bildiradi. Tabriklaymiz, muvaffaqiyatli o‘tdingiz!

Kodingizni ishga tushirish

Debugger’da kodingizni ishga tushirish uchun continue (yoki qisqacha c) yozing. Bu kodingizni quyidagi holatlardan biri yuz berguncha bajaradi:

  • Kodda istisno (exception) yuzaga keladi
  • To‘xtash nuqtasiga (breakpoint) erishiladi (bu bo‘limda keyinroq tushuntiriladi)
  • Kod bajarilishi tugaydi

Ushbu misolda hech qanday istisno yoki to‘xtash nuqtasi yo‘q, shuning uchun kod muvaffaqiyatli bajariladi va o‘z ishini tugatadi.

Last updated on

On this page

Xato haqida xabar berish