Pernyataan cetak adalah jenis yang terburuk dari kedua dunia , menggabungkan aspek negatif dari debugger online dengan instrumentasi diagnostik. Anda harus memodifikasi program tetapi Anda tidak mendapatkan lebih banyak, kode yang berguna darinya.
Debugger online memungkinkan Anda memeriksa status program yang sedang berjalan; Tetapi hal yang menyenangkan tentang debugger yang sebenarnya adalah Anda tidak perlu memodifikasi sumbernya; baik sebelum maupun sesudah sesi debugging; Anda cukup memuat program ke dalam debugger, memberi tahu debugger di mana Anda ingin mencari, dan Anda sudah siap.
Menginstruksikan aplikasi mungkin memerlukan beberapa pekerjaan di depan, memodifikasi kode sumber dalam beberapa cara, tetapi keluaran diagnostik yang dihasilkan dapat memiliki banyak detail, dan dapat diaktifkan atau dinonaktifkan ke tingkat yang sangat spesifik. Modul logging python tidak hanya dapat menampilkan pesan yang dicatat, tetapi juga file dan fungsi yang memanggilnya, pelacakan balik jika ada, waktu sebenarnya saat pesan itu dikirim, dan seterusnya. Lebih dari itu; instrumentasi diagnostik tidak perlu dilepas; Ini sama valid dan bermanfaatnya saat program selesai dan dalam produksi seperti saat program ditambahkan; tetapi dapat membuat keluarannya macet di file log yang tidak mungkin mengganggu siapa pun, atau tingkat log dapat diturunkan untuk menyimpan semua kecuali pesan yang paling mendesak.
mengantisipasi kebutuhan atau penggunaan debugger benar-benar tidak lebih sulit daripada menggunakan ipython saat Anda menguji, dan menjadi terbiasa dengan perintah yang digunakannya untuk mengontrol debugger pdb bawaan.
Ketika Anda menemukan diri Anda berpikir bahwa pernyataan cetak mungkin lebih mudah daripada menggunakan pdb (seperti yang sering terjadi), Anda akan menemukan bahwa menggunakan logger menarik program Anda jauh lebih mudah untuk bekerja pada status daripada jika Anda menggunakan dan kemudian menghapus pernyataan cetak .
Saya memiliki editor saya dikonfigurasi untuk menyorot pernyataan cetak sebagai kesalahan sintaks , dan pernyataan pencatatan sebagai komentar, karena itu tentang bagaimana saya menganggapnya.