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

Python Debugger:Tingkatkan Keterampilan Debug Anda dengan Mudah

Men-debug kode Python, bagi banyak dari kita, turun untuk menambahkan pernyataan cetak dan mencoba menjelaskan apa yang terjadi berdasarkan output. Ini tidak ideal, tetapi untuk beberapa alasan, orang tidak ingin menyentuh debugger Python.

Daftar isi

Menggunakan print untuk men-debug kode

Jika Anda salah satu dari orang-orang yang menggunakan print untuk debugging, Saya tidak menghakimi Anda . Belajar Python itu sulit. Pemrograman itu sulit. Hidup itu sulit. Saya mengerti bahwa mempelajari hal lain tampaknya melelahkan jika Anda sudah berjuang. Dan menambahkan pernyataan cetak itu ke kode Anda… itu lebih mudah. Sedikit pengakuan:Saya masih melakukannya sepanjang waktu juga. Ini tidak seburuk kelihatannya.

Karena itu, saya akan mengajari Anda sedikit trik yang semudah menambahkan pernyataan cetak ke kode Anda. Namun, trik ini memberi Anda kekuatan debug tak terbatas dan memungkinkan Anda menaklukkan dunia, jika perlu.

Menyetel breakpoint debugger Python

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

Triknya sampai pada ini:menyetel apa yang disebut breakpoint menggunakan instruksi breakpoint() . Anda dapat memasukkannya ke dalam kode Anda, apa pun editor atau IDE yang Anda gunakan, pada titik di mana Anda biasanya memasukkan pernyataan cetak yang mengganggu itu.

Jadi apa yang terjadi ketika Anda melakukannya? Mari kita cari 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 masalah jika Anda melakukannya di REPL, dari baris perintah, atau di IDE Anda, Anda akan dimasukkan ke dalam debugger Python yang disebut PDB. Tapi sekarang apa?

Menggunakan debugger Python

Ketika saya memulai program kecil di atas, inilah yang terjadi:

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

Ada beberapa hal yang bisa dilihat di sini:

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

Pada titik ini, kita dapat memeriksa lingkungan saat ini. Mari kita lihat apa nilai a sekarang:

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

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

(Pdb) p a
3
(Pdb_ p i
1

Menjalankan baris berikutnya

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

Untuk membuatnya lebih jelas:step dengan senang hati memasuki panggilan fungsi dan masuk ke dalam fungsi itu. Sebaliknya, next mengeksekusi fungsi hingga kembali, dan berhenti pada baris berikutnya.

Debugger dan IDE lain juga menyebut ini 'langkah ke' (bukan langkah) dan 'langkahi' (bukan berikutnya).

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, pertama-tama kita lakukan panggilan ke add_two dengan n . Kedua kalinya, kita masuk ke fungsi dengan s .

Perintah debugger Python

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

Untuk dokumentasi lengkap, buka halaman debugger Python, di mana semua perintah terdaftar.

Terus belajar

Meskipun ini bisa sangat berguna, ada baiknya untuk menyelami debugger yang ditawarkan IDE Anda. Jika Anda pengguna VSCode, saya menulis tutorial tentang cara men-debug kode Python di VSCode.


Python

  1. Masukan, Keluaran, dan Impor Python
  2. Pernyataan Python Print():Cara Mencetak dengan Contoh
  3. String Python:Ganti, Gabung, Pisahkan, Balik, Huruf Besar &Huruf Kecil
  4. Python time.sleep():Tambahkan Penundaan ke Kode Anda (Contoh)
  5. Python Baris Baru:Cara Mencetak TANPA Baris Baru di Python
  6. Armada yang Terhubung Meningkatkan Keuntungan Anda
  7. Bagaimana Prototipe Meningkatkan Proses Manufaktur Anda
  8. 5 cara untuk meningkatkan bagian lembaran logam Anda
  9. 3 Tips untuk Meningkatkan Rencana Pemeliharaan Peralatan Anda
  10. Tips dan Pertimbangan:Belajar Meningkatkan Keterampilan Desain PCB Anda