Instrukcje drukowania są w pewnym sensie najgorsze z obu światów , łącząc negatywne aspekty debugera online z instrumentami diagnostycznymi. Musisz zmodyfikować program, ale nie otrzymasz z niego więcej przydatnego kodu .
Debugger online umożliwia sprawdzenie stanu uruchomionego programu; Ale fajną rzeczą w prawdziwym debugerze jest to, że nie musisz modyfikować źródła; ani przed, ani po sesji debugowania; Wystarczy załadować program do debugera, powiedzieć debugerowi, gdzie chcesz szukać i gotowe.
Oprzyrządowanie aplikacji może zająć trochę pracy z góry, modyfikując w jakiś sposób kod źródłowy, ale wynikowy wynik diagnostyczny może mieć ogromną ilość szczegółów i może być włączany lub wyłączany w bardzo określonym stopniu. Moduł rejestrowania w Pythonie może pokazywać nie tylko zarejestrowany komunikat, ale także plik i funkcję, która go wywołała, dane śledzenia, jeśli takie istniały, rzeczywisty czas wyemitowania wiadomości i tak dalej. Więcej niż to; nigdy nie trzeba usuwać oprzyrządowania diagnostycznego ; Jest tak samo ważny i przydatny, gdy program jest ukończony i jest w produkcji, jak w dniu jego dodania; ale może to spowodować, że jego dane wyjściowe utkną w pliku dziennika, gdzie prawdopodobnie nie będzie nikogo denerwować, lub poziom dziennika można obniżyć, aby ukryć wszystkie oprócz najpilniejszych wiadomości.
Przewidywanie potrzeby lub użycia debuggera nie jest tak naprawdę trudniejsze niż używanie ipythona podczas testowania i zapoznanie się z poleceniami używanymi do kontrolowania wbudowanego debuggera pdb.
Kiedy zorientujesz się, że instrukcja print może być łatwiejsza niż użycie pdb (jak to często bywa), zauważysz, że użycie loggera wciąga twój program w znacznie łatwiejszy sposób do pracy nad stanem, niż gdybyś używał i później usuwał instrukcje print .
Mój edytor został skonfigurowany tak, aby podświetlał instrukcje drukowania jako błędy składniowe i rejestrował instrukcje jako komentarze, ponieważ tak je traktuję.