Python調試的幾種方式
python作為一種腳本語言,很多時候我們習慣于它的簡潔,習慣于它的修改就能看到結果的特性。對于python的調試,有很多種方式,今天我們就來簡單介紹下。
對于腳本語言,調試最簡單的方式就是打印輸出,而print函數(shù)就可以輸出各種類型變量,配合著格式化輸出,我們可以打印出程序運行過程中各個變量的狀態(tài)值。

使用這種方式的好處是我們不需要引入其它包,我們只需要使用簡單的print就可以調試我們的程序,當然,它的缺點也很明顯,有時候為了調試一些變量,我們不得不寫很多print語句,而且有時候為了更優(yōu)雅地顯示數(shù)據,我們不得不寫很多代碼。
Icecream
這是一個調試輸出插件,相比于print函數(shù),它可以自動優(yōu)雅地輸出各種變量類型,它會輸出變量的位置,它可以輸出函數(shù)的值,它還可以將值輸出寫入日志中。

通過引入icecream包,我們就可以在程序中更加簡單地優(yōu)雅地輸出調試變量和函數(shù)的值,但是它和print函數(shù)一樣,沒有解決調試的侵入性問題,會產生調試代碼。
PySnooper
前面我們提到了print和icecream都會產生調試代碼,當調試結束之后我們還需要刪除它們,那么有沒有一種非侵入式地調試方式呢,答案是肯定的,那就是pysnooper。

pysnooper通過使用裝飾器,可以非侵入式地調試代碼,并且它輸出的信息很詳細,我們可以清楚地看到函數(shù)的調用層級,可以清楚地看到變量值的變化過程。并且它是支持調試信息的輸出位置配置,默認是在控制臺輸出,當然,我們也可以在日志中輸出調試。
pdb
我們知道調試c語言的時候有gdb,而調試python的時候,我們有pdb,它和gdb而很類似,我們可以進行斷點設置,可以進行逐行調試,可以進入斷點,可以設置修改變量值,配合著IDE,可以說pdb是我們最常用的,也是最方便的調試方法。

通過設置斷點,我們完全不需要寫任何代碼就可以查看運行中變量的值,通過逐行調試,也有助于我們分析代碼。
總結
無論何種調試方式,選擇一個適合自己的最重要,畢竟把代碼寫好才是最重要的。