python作為一種腳本語言,很多時候我們習(xí)慣于它的簡潔,習(xí)慣于它的修改就能看到結(jié)果的特性。對于python的調(diào)試,有很多種方式,今天我們就來簡單介紹下。
對于腳本語言,調(diào)試最簡單的方式就是打印輸出,而print函數(shù)就可以輸出各種類型變量,配合著格式化輸出,我們可以打印出程序運行過程中各個變量的狀態(tài)值。
使用這種方式的好處是我們不需要引入其它包,我們只需要使用簡單的print就可以調(diào)試我們的程序,當(dāng)然,它的缺點也很明顯,有時候為了調(diào)試一些變量,我們不得不寫很多print語句,而且有時候為了更優(yōu)雅地顯示數(shù)據(jù),我們不得不寫很多代碼。
Icecream
這是一個調(diào)試輸出插件,相比于print函數(shù),它可以自動優(yōu)雅地輸出各種變量類型,它會輸出變量的位置,它可以輸出函數(shù)的值,它還可以將值輸出寫入日志中。
通過引入icecream包,我們就可以在程序中更加簡單地優(yōu)雅地輸出調(diào)試變量和函數(shù)的值,但是它和print函數(shù)一樣,沒有解決調(diào)試的侵入性問題,會產(chǎn)生調(diào)試代碼。
PySnooper
前面我們提到了print和icecream都會產(chǎn)生調(diào)試代碼,當(dāng)調(diào)試結(jié)束之后我們還需要刪除它們,那么有沒有一種非侵入式地調(diào)試方式呢,答案是肯定的,那就是pysnooper。
pysnooper通過使用裝飾器,可以非侵入式地調(diào)試代碼,并且它輸出的信息很詳細(xì),我們可以清楚地看到函數(shù)的調(diào)用層級,可以清楚地看到變量值的變化過程。并且它是支持調(diào)試信息的輸出位置配置,默認(rèn)是在控制臺輸出,當(dāng)然,我們也可以在日志中輸出調(diào)試。
pdb
我們知道調(diào)試c語言的時候有g(shù)db,而調(diào)試python的時候,我們有pdb,它和gdb而很類似,我們可以進(jìn)行斷點設(shè)置,可以進(jìn)行逐行調(diào)試,可以進(jìn)入斷點,可以設(shè)置修改變量值,配合著IDE,可以說pdb是我們最常用的,也是最方便的調(diào)試方法。
通過設(shè)置斷點,我們完全不需要寫任何代碼就可以查看運行中變量的值,通過逐行調(diào)試,也有助于我們分析代碼。
總結(jié)
無論何種調(diào)試方式,選擇一個適合自己的最重要,畢竟把代碼寫好才是最重要的。
以上內(nèi)容為大家介紹了python調(diào)試的幾種方式,希望對大家有所幫助,如果想要了解更多Python相關(guān)知識,請關(guān)注IT培訓(xùn)機構(gòu):千鋒教育。http://m.2667701.com/