如何debug函数_如何使用 pdb 来性感 debug 你的 Python 代码?
當(dāng)你的代碼寫得多了,你總會出現(xiàn)這樣或者那樣的錯誤,有時候代碼突然可以用,有時候代碼又突然傻逼,有時候你只是離開一會,它就自動好了…就像女生的心思,總是讓人捉摸不透,總是那么的魔幻。
今天,小帥b來跟你說說 debug ,其實 debug 還是挺重要的,它除了可以幫助你自己發(fā)現(xiàn)代碼自身的 bug 之外,你還可以通過 debug 清楚的知道代碼的執(zhí)行流程,比如變量是怎么賦值的,數(shù)據(jù)是如何改變的等等,你都可以通過 debug 手段清楚的看到這些玩意的變化。
除此之外,當(dāng)你在學(xué)習(xí)一個新的庫或者新的代碼特性的時候,debug 也是常用的學(xué)習(xí)手段,因為你可以通過它更容易理解代碼為什么是那樣寫的。
接下來我會跟你說說 Python 內(nèi)置的 debug 工具 pdb 的使用。
我們先來看看這樣的例子:
很簡單,這里我們定義了個方法,然后傳遞參數(shù) name 返回一個字符串。
不過你可以看到第二行調(diào)了一個 breakpoint 方法,這是打斷點的意思,它是 Python 內(nèi)置的,直接調(diào)用即可,接著我們來運行一下這個 py:
這時候可以看到:
第一行:> 后面告訴我們打斷點的位置
第二行:-> 就是此刻 Python 執(zhí)行到的暫停位置(因為我們在此前打了斷點了)
第三行:(pdb):意思是說我們可以使用 pdb 這個工具的相關(guān)命令了。
如果你不知道如何使用 pdb 的調(diào)試命令,可以輸入 help 得到相關(guān)的幫助:
在這里我跟你說下 pdb 常常會用到的幾個命令的意思:
1、p + 參數(shù) :查看參數(shù)的值
2、n :單步跳過
3、s :單步進(jìn)入
4、c :繼續(xù)執(zhí)行
5、w :顯示上下文信息
6、a :查看函數(shù)的參數(shù)列表
7、ll : 列出當(dāng)前的源碼
8、b : 設(shè)置斷點
9、q : 退出 debug
比如現(xiàn)在我們想知道參數(shù) name 的值是什么,我們就可以這樣:
顯示參數(shù):
顯示上下文信息:
執(zhí)行當(dāng)前代碼(單步進(jìn)入):
繼續(xù)執(zhí)行:
在 debug 的過程中,你還可以修改參數(shù)的值,比如把 name 直接改成 sb:
列出當(dāng)前的源碼:
我剛給你演示的這些是在 Python3.8 版本下執(zhí)行的,如果你用的是 Python 3.7 以下的版本,是用不了 breakpoint 這個函數(shù)的:
所以如果想要在 Python3.7 以下的版本使用 pdb ,那么你就需要自行導(dǎo)入了,并且你要打斷點的話應(yīng)該調(diào)用的是 set_trace():
那么這個時候,你就可以在 Python3.7 以下的版本使用 pdb 了:
當(dāng)然,你還可以什么斷點都不設(shè)置,使用命令的方式執(zhí)行 pdb ,比如我們把剛剛的斷點都去掉:
接著我們通過 pdb 命令來執(zhí)行它:
python3 -m pdb xxx.py
這時候可以看到,它是直接從第一行開始打斷點:
哦對了,如果你使用 VIM 編輯器的話,可以使用 repl 插件結(jié)合 ipdb 實現(xiàn)調(diào)試,像我這樣:
ok,以上,希望對你有幫助,我們下回見,peace!
總結(jié)
以上是生活随笔為你收集整理的如何debug函数_如何使用 pdb 来性感 debug 你的 Python 代码?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 西部慢调电影海报精选
- 下一篇: 将变量区分_【统计学】区分定类、定序、定