點擊藍色「Python空間」關注我丫程序員
加個「星標」,天天一塊兒快樂的學習web
pdb 是 Python 自帶的庫,爲 Python 提供了一種交互式的源碼調試功能,包含當前調試器應有的功能,包括設置斷點、單步調試、查看源碼等。其實若是你以前學過 C/C++ 的話,你可能知道 gdb 這個命令行調試工具,若是你以前用過 gdb,那麼恭喜你你能夠直接用 pdb 了,由於兩個用法是同樣的。
編程
其實還有一個開源的 Python 調試器 -- ipdb,它和 pdb 的接口是同樣的,可是 ipdb 相比於 pdb 多了語法高亮,tab 自動補全等友好功能,在易用性方面作了很大的改進,這個感受就和 Python 和 IPython 同樣。微信
關於 pdb 調試和 ipdb 調試的用法,我在之前的文章中也寫過,感興趣的能夠看一下:app
Python 調試器,一個優秀開發人員的必備技能包。
編程語言
0x01 斷點 + 單步調試編輯器
這個更多的是在圖形界面下的調試,不少 IDE 都支持 Python,調試功能都很完善,這裏我主要介紹在 Pycharm 下的調試,畢竟 Pycharm 能夠說是當前最好用的 Python IDE。工具
斷點
單元測試
在斷點這個地方,主要分爲兩步:「找斷點」和「打斷點」。
學習
找斷點,就是你想調試的代碼塊的第一行代碼便可,也就是一個斷點接足夠了,找到之後就能夠打斷點了。可能有同窗就有這麼一個問題:
我都不知道是哪部分出了問題,我哪知道我要調試哪段代碼?
好像有點道理,不要慌,問題不大。首先你在關鍵的代碼位置上 print,而後經過分析 print 的值來縮小範圍,固然這個過程你要穩住,可能須要重複屢次,通常這樣就能夠將範圍縮小到一個比較完整的功能代碼塊中,而後就打斷點好了。
因此知道爲啥叫「打」斷點了吧,誰讓它那麼難找...
下面來講打斷點的方法,就是單擊目標代碼的行號右邊空白處,而後出現一個紅紅的圈,就證實打斷點成功了,請看下圖:
單步調試
斷點打完了,那麼就該「單步調試」了。
調試的方法很是簡單,就是在當前的 py 文件內部點鼠標右鍵,單擊「Debug xxx」(xxx 是 py 文件名):
此時 Pycharm 會調出一個控制檯,這個控制檯大概分爲顯示內容的區域和工具區域:
其中工具區域有兩個面板:Debugger 和 Console。對於 Debugger 面板,它的內容是在內容區域顯示,顯示的爲程序執行過程當中的變量及細節;Console 面板則是輸出數據顯示的位置。
對於咱們的代碼,若是到調試狀態,該行代碼就處於一個凍結的狀態,在點擊"按步操做"以後,纔會一行一行代碼執行。
主要用到 Step Over 這個按鈕:
而後咱們繼續單擊 Step Over 按鈕,一直到最後一步:
而後你會在 Debugger 面板內看到全部的變量及其值和類型,而後咱們再來單擊 Step Over 按鈕,讓咱們來看一下發生了什麼:
👆掃描上方二維碼便可關注
本文分享自微信公衆號 - Python空間(Devtogether)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。