Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> Python

Menguasai Debugging Python: Teknik Efisien dan Praktik Terbaik

Menguasai Debugging Python: Teknik Efisien dan Praktik Terbaik

Debugging kode Python, untuk banyak dari kita, berurusan dengan menambahkan pernyataan print dan mencoba menebak apa yang sedang terjadi berdasarkan outputnya. Tidak ideal, namun dari alasan apa pun, orang tidak ingin menyentuh debugger Python.

Daftar isi

Menggunakan print untuk debugging kode

Jika Anda adalah salah satu orang yang menggunakan print untuk debugging, saya tidak menghakimi Anda. Belajar Python sulit. Pemrograman sulit. Hidup sulit. Saya mengerti bahwa belajar hal lain tampaknya melelahkan jika Anda sudah kesulitan. Dan menambahkan pernyataan print ke kode Anda… itu lebih mudah. Sebuah pengakuan kecil: Saya masih melakukannya sepanjang waktu juga. Itu tidak seburuk yang orang buat tampak.

Dengan demikian, saya akan mengajari Anda trik yang akan sama mudahnya dengan menambahkan pernyataan print ke kode Anda. Namun, trik ini memberi Anda kemampuan debugging tak terbatas dan akan memungkinkan Anda untuk memenangkan dunia, jika Anda perlu.

Mengatur breakpoint debugger Python

Anda tidak memerlukan IDE untuk debug kode Anda dengan benar. Trik ini selalu bekerja, bahkan di editor sederhana, dan bahkan di Jupyter Notebooks.

Trik ini berarti: mengatur yang disebut breakpoint menggunakan instruksi breakpoint(). Anda dapat menyisipkannya di kode Anda, tidak peduli editor atau IDE yang Anda gunakan, di titik di mana Anda biasanya menempatkan pernyataan print yang mengganggu itu.

Jadi apa yang terjadi saat Anda melakukannya? Mari kita tahu! Buat program sederhana, seperti di bawah ini:

def add_two(x): return x + 2 for i in range(1, 10): a = add_two(i) breakpoint() print(a)

Saat Anda menjalankan ini, dan tidak peduli apakah Anda melakukannya di REPL, dari command-line, atau di IDE Anda, Anda akan dimasukkan ke dalam debugger Python yang disebut PDB. Tetapi sekarang apa?

Menggunakan debugger Python

Saat saya memulai program kecil di atas, ini yang terjadi:

$ python3 breakpointing.py > /home/erik/breakpointing.py(7)<module>() -> print(a) (Pdb)_

Ada beberapa hal yang dapat dilihat di sini:

Debugger Python sebenarnya adalah shell Python yang berfungsi penuh, sama seperti REPL.

Titik ini, kita dapat memeriksa lingkungan saat ini. Mari kita lihat nilai a saat ini:

(Pdb) print(a) 3 (Pdb) print(i) 1

Alih-alih print, Anda juga dapat menggunakan perintah pdb khusus p, seperti ini:

(Pdb) p a 3 (Pdb_ p i 1

Menjalankan baris berikutnya

Jadi apa jika kita ingin menjalankan baris kode berikutnya? Ada dua opsi:

Untuk membuatnya lebih jelas: step dengan senang hati memasuki pemanggilan fungsi dan berhenti di dalam fungsi tersebut. Di sisi lain, next mengeksekusi fungsi sampai mengembalikan, dan berhenti di baris berikutnya.

Debugger dan IDE lainnya juga menyebut ini ‘step into’ (bukan step) dan ‘step over’ (bukan next).

Sekarang mari kita gunakan keduanya:

$ python3 breakpointing.py -> print(a) (Pdb) s 3 -> for i in range(1, 10): (Pdb) s -> a = add_two(i) (Pdb) n -> breakpoint() (Pdb) n -> print(a) (Pdb) n 4 -> for i in range(1, 10): (Pdb) s -> a = add_two(i) (Pdb) s --Call-- -> def add_two(x): (Pdb) s -> return x + 2 (Pdb) s --Return-- 5 -> return x + 2 (Pdb) s -> breakpoint() (Pdb)

Seperti yang Anda lihat, kita pertama kali step over pemanggilan ke add_two dengan n. Kedua kalinya, kita step into fungsi dengan s.

Perintah debugger Python

Ada lebih banyak perintah yang dapat Anda coba sendiri. Saya tidak akan menampilkan semuanya, hanya yang paling berguna:

Untuk dokumentasi lengkap, kunjungi halaman debugger Python, di mana semua perintah tercantum.

Terus belajar

Meskipun ini bisa sangat berguna, lebih baik untuk menyelami debugger yang ditawarkan oleh IDE Anda. Jika Anda pengguna VSCode, saya telah menulis tutorial tentang cara debug kode Python di VSCode.

Menguasai Debugging Python: Teknik Efisien dan Praktik Terbaik

Python

  1. Menguasai Input/Output Python dan Impor Modul: Panduan Praktis
  2. Fungsi print() Python: Panduan Praktis dengan Contoh
  3. Menguasai Operasi String Python: Replace, Join, Split, Reverse, dan Konversi Huruf Besar/Kecil
  4. Python time.sleep(): Cara Menambahkan Jeda dalam Kode (Contoh)
  5. Python Print Tanpa Baris Baru: Menguasai Parameter end & Teknik Lainnya
  6. Maksimalkan Keuntungan dengan Manajemen Armada Terkoneksi yang Diperluas Ford
  7. Percepat Produksi: Bagaimana Prototyping Meningkatkan Proses Manufaktur Anda
  8. 5 Strategi Teruji untuk Meningkatkan Kualitas Bagian Logam Tipis
  9. 3 Strategi Terbukti Tingkatkan Rencana Pemeliharaan Mesin Industri
  10. Menguasai Desain PCB: Tips Esensial & Praktik Terbaik untuk Insinyur