Programcılar için   hata ayıklama temel bir beceridir, bir zanaattır ve bu konuda daha iyi olmak için pratik yapmanız  gerekmektedir. Burada, Python kodunuzda hata ayıklamak için faydalı püf noktaları ve araçları nelerdir?

1. Bir işlevin veya nesnenin kaynak kodunu görüntüleyin

içe aktarma denetleme 
hatası ekle (x, y):
x + y döndür
class Dog:
kind = 'dog' # tüm örnekler tarafından paylaşılan sınıf değişkeni
def __init __ (self, name):
self.name = name # her örnek için benzersiz örnek değişkeni
def eat (yemek):
baskı ("yemek ..." + yiyecek)
print (inspect.getsource (add))
print (inspect.getsource (Dog))
print (inspect.getsource (Dog.eat))



2. Günlüğü Dosyaya yazdırın

f olarak open ('test.log', mode = 'w') ile: 
print ('merhaba, python', file = f, flush = True)


3. Uygulama zamanını takip edin

ithalat zamanıstart = time.time () 
# fonksiyonu çalıştır
end = time.time ()
baskı (bitiş-başlangıç)
içe aktarma zamanı 
içe aktarma zamanı
def run_sleep (saniye):
baskı (saniye)
zaman.sleep (saniye)
baskı (timeit.timeit (lambda: run_sleep (2), sayı = 1))

 4. Etkileşimli hata ayıklama

python -i demo.py
>>> importlib'den içe aktarma yeniden yükleme 
>>> modülden içe aktarma demosu
>>> demo ()
" Demonun sonucu ..."
# "Demo" da bazı değişiklikler yapın
>>> demo ()
"Demonun sonucu ..." # Eski sonuç
>>> yeniden yükle (modül) # "Demo" da yapılan değişikliklerden sonra "modülü" yeniden yükle
>>> demo ()
"Bu yeni sonuç olacak ..."
>>> # düzelt ve yeniden dene çemberini tekrar et

5. pdb kullanın

user @ coderscat: ~ / snippet $ python3.7 -m pdb demo.py 
> /home/user/snippets/demo.py(1) <module> ()
-> içe aktarma denetimi
(Pdb) l
1 -> içe aktarma denetimi
2
3 def gcd (a, b):
4 if (b == 0):
5 return a
6 else:
7 return gcd (b, a% b)
8
9
10 print (gcd (34, 34))
[EOF]
( Pdb) b demo.py:3
Kesme Noktası 1, /home/user/snippets/demo.py:3
(Pdb) c
> /home/user/snippets/demo.py(3) <module> ()
-> def gcd (a, b):
(Pdb) adım
> /home/user/snippets/demo.py(10) <module> ()
-> print (gcd (34, 34))
(Pdb)
pdb'yi içe aktar; pdb.set_trace ()