一、思考
1、什么是debug
● 找茬
◆ 找軟件的茬
◆ 發現程序的缺陷
2、為什么需要debug?
● 誰都不敢保證,寫的代碼沒有任何問題
● 高效查找軟件異常
● 一位優秀的開發工程師
◆ 20%的時間寫代碼
◆ 80%的時間用來排錯
“不會debug” == “不會代碼” == “低工資”
3、debug需要具備哪些功能?
● 控制程序的執行
◆ 想停則停,想執行則執行
◆ 隨心所欲
● 設置斷點
◆ 在指定位置停止
● 查看當前命名空間(程序棧)中變量
二、Python中的Debug大法
案例代碼如下所示:
創建deubg_skills_demo.py文件
創建gifts.py文件
1、Pdb操作
● 系統自帶的debug工具(無需安裝)
● 將以下代碼放在需要調試的地方(類似于設置斷點)
● 當程序執行到上述代碼所在位置時,會自動開啟一個console終端
◆ "->"是接下來要執行的代碼(當前還未執行)
● 可以在終端運行的命令
◆ list或者l
◆ 顯示當前運行的代碼
◆ 默認列出11行代碼
● p變量名或者p需要運行的表達式
◆ 打印變量的值
● step或者s
◆ 如果在函數調用處執行,則會進入函數體內部
● next或者n
◆如果在函數調用處執行,則不會進入函數體內部
● enter
◆ 重復執行上一次的命令
● b(reak) [ ([filename:]lineno | function) [, condition] ]
◆ 設置斷點
◆ filename可選,如果不傳,默認在當前文件設置斷點
● c或者continue
◆ 繼續往下運行,在下一個斷點處停下來
● disable斷點編號
◆ 禁用斷點
● enable斷點編號
◆ 啟用斷點
● cl或者clear 斷點編號
◆ 清除斷點
● display或者undisplay 變量
◆ 監聽或者不監聽某個變量
◆ 如果變量值改變,會自動顯示
● h或者help
◆ 幫助信息
● h具體命令
◆ 具體命令的幫助文檔
● h pdb
◆ pdb的完整文檔
三、Pycharm debug操作
1、打開Python Prompt
會出現一個ipython的控制臺
● 可在控制臺查看當前命名空間中的變量
● 也可執行Python表達式
2、Step Over/F8
● 按調試工具欄中的
● 類似于pdb中的next
● 程序不會進入到函數體內部
3、Step Into/F7
● 按調試工具欄中的
● 類似于pdb中的step
● 程序會進入到函數(方法)體內部、系統源碼、第三方模塊源碼中
4、Step Out/Shift+F8
● 從函數體內部跳出
5、Step Into My Code
Step Into My Code / ALT+Shift+F7
● 按調試工具欄中的
● 主要關注自己寫的代碼
● 從系統源碼、第三方模塊源碼中跳到自己寫的代碼中
6、Evaluate Expression
● 在當前命名空間內計算表達式的值
7、Quick Evaluate Expression
● 快速計算表達式的值
8、Watching
● 類似于pdb中的display
● 可以監聽某個變量或者表達式的值
四、總結
● 作為代碼編寫者,掌握代碼的調試技巧是必備的
● 能提升工作效率,提高代碼質量
● Python中Debug調試工具和技巧非常多
● 最常用、最實用的知識點,本文均有覆蓋
本文由檸檬班可優老師原創,轉載需注明出處!