Python Kodunuzda Hata Ayıklamanıza Yardımcı Olacak Faydalı 5 Püf Noktası

Hata ayıklama

python - 09-11-2020 13:34

 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 ()
liste (l): size Python yorumlayıcısının şu anda bulunduğu kod satırını gösterir adım (lar): uygulamaya satır satır devam edin, işleve adım atın next (n): sonraki kod satırına devam et break (b): geçerli satırda yeni kesme noktası kur devam et (c): bir sonraki kesme noktasına kadar yürütmeye devam et  
Günün Diğer Haberleri