1. 調試的過程
調試可以說是每個開發人員都必備一項技能,在日常開發和排查 bug 都非常有用。
調試的過程分為三步:
-
第一步:在你想要調試的地方,打上斷點
-
第二步:使用調試模式來運行這個 python 程序
-
第三步:使用各種手段開始代碼調試
首先第一步和第二步,我用下面這張圖表示
點擊上圖中的小蜘蛛,開啟調試模式后,在 PyCharm 下方會彈出一個選項卡。
這個選項卡的按鍵非常多,包括
- 變量查看窗口
- 調試控制窗口
- 線程控制窗口
- 程序控制窗口
在變量查看窗口,你可以查看當前程序進行到該斷點處,所有的普通變量和特殊變量,你每往下執行一行代碼,這些變量都有可能跟着改變。
如果你的程序是多線程的,你可以通過線程控制窗口的下拉框來切換線程。
以上兩個窗口,都相對比較簡單,我一筆帶過,下面主要重點講下調試控制按鈕和程序控制按鈕。
在調試控制窗口,共有 8 個按鈕,他們的作用分別是什么呢?
- Show Execution Point:無論你的代碼編輯 窗口的光標在何處,只要點下該按鈕,都會自動跳轉到程序運行的地方。
- Step Over:在單步執行時,在函數內遇到子函數時不會進入子函數內單步執行,而是將子函數整個執行完再停止,也就是把子函數整個作為一步。在不存在子函數的情況下是和step into效果一樣的。簡單的說就是,程序代碼越過子函數,但子函數會執行,且不進入。
- Step Into:在單步執行時,遇到子函數就進入並且繼續單步執行,有的會跳到源代碼里面去執行。
- Step Into My Code:在單步執行時,遇到子函數就進入並且繼續單步執行,不會進入到源碼中。
- Step Out:假如進入了一個函數體中,你看了兩行代碼,不想看了,跳出當前函數體內,返回到調用此函數的地方,即使用此功能即可。
- Run To Cursor:運行到光標處,省得每次都要打一個斷點。
- Evaluate Expression:計算表達式,在里面可以自己執行一些代碼。
以上七個功能,就是最常用的功能,一般操作步驟就是,設置好斷點,debug運行,然后 F8 單步調試,遇到想進入的函數 F7 進去,想出來在 shift + F8,跳過不想看的地方,直接設置下一個斷點,然后 F9 過去。
看這張圖就行了(下面第6點有誤,應該是運行到光標處,而不是下一斷點處)
在程序控制窗口,共有 6 個按鈕,他們的作用分別又是什么呢?同時看下面這張圖就行了。
2. 調試相關的快捷鍵
- ⇧ + F9:調試當前文件
- ⌥ + ⇧ + F9:彈出菜單,讓你選擇調試哪一個文件
- F8:單步執行,不進入函數
- F7:單步執行,進入函數
- ⌥ + ⇧ +F7:單步執行,只進入自己寫的函數
- ⇧ + F8:跳出函數體
- F9:運行到下一斷點
- ⌥ + F9:運行到光標處
- ⇧ + ⌘ + F8:查看所有設置的斷點
- ⌘ + F8:切換斷點(有斷點則取消斷點,沒有則加上斷點)
- ⌥ + F5:重新以調試模式運行
- ⌥ + F8 計算表達式(可以更改變量值使其生效)
文章最后給大家介紹兩個我自己寫的在線文檔:
第一個文檔:PyCharm 中文指南 1.0 文檔
整理了 100 個 PyCharm 的使用技巧,為了讓新手能夠直接上手,我花了很多的時間錄制了上百張 GIF 動圖,有興趣的前往在線文檔閱讀。
第二個文檔:PyCharm 黑魔法指南 1.0 文檔
系統收錄各種 Python 冷門知識,Python Shell 的多樣玩法,令人瘋狂的 Python 炫技操作,Python 的超詳細進階知識解讀,非常實用的 Python 開發技巧等。