優秀開發者必備技能包 Python偵錯程式

2021-09-12 12:49:48 字數 1720 閱讀 5793

python 偵錯程式

這一部分主要就是想說兩個 python 偵錯程式,分別是標準庫自帶的 pdb 和開源的 ipdb。

pdb

pdb 是 python 自帶的庫,為 python 提供了一種互動式的原始碼除錯功能,包含當前偵錯程式應有的功能,包括設定斷點、單步除錯、檢視原始碼等。其實如果你之前學過 c/c++ 的話,你可能知道 gdb 這個命令列除錯工具,如果你之前用過 gdb,那麼恭喜你你可以直接用 pdb 了,因為這哥倆乙個用法。如果你不知道 gdb 也沒事,我們先來看一下 pdb 的部分除錯命令

這裡有兩種不同的方法來啟動 python 偵錯程式,兩種方法適用於不同的場景。一種是直接在命令列引數指定使用 pdb 模組啟動 python 檔案,這種適合於**檔案較短的情況,將在**的第一行啟動 python 偵錯程式。具體如下所示(例如檔名是 test.py):

python -m pdb test.py

另一種是在 python **中呼叫 pdb 模組的 set_trace 方法設定乙個斷點,當程式執行到此斷點的時候,程式將會暫停執行並且開啟 pdb 偵錯程式,這種適合於**檔案較大的情況。具體如下所示:

import pdb

def get_sum(n):

cnt = 0

for i in range(n):

pdb.set_trace()

cnt += i

print(cnt)

if __name__ == '__main__':

get_sum(5)

啟動 python 偵錯程式以後就可以使用上面截圖中的除錯命令進行程式的除錯。比如在接下來的操作中,我們先使用 list 來檢視我們的**,然後使用 p 列印變數當前的取值,最後用 n 執行下一行 python **:

ipdb 是乙個開源的 python 偵錯程式,其實它和 pdb 的介面是一樣的。那既然一樣的介面,那為啥還要設計個 ipdb 呢?黑格爾曾經說過「存在即合理」,ipdb 相比於 pdb 多了語法高亮,tab 自動補全等友好功能,在易用性方面做了很大的改進,這個感覺就和 python 和 ipython 一樣。

當然,ipdb 作為乙個第三方庫,在使用之前必然要先安裝:

pip install ipdb

我們修改一下之前例子中的 test.py 檔案,修改之後的**如下:

import ipdb

def get_sum(n):

cnt = 0

for i in range(n):

ipdb.set_trace()

cnt += i

print(cnt)

if __name__ == '__main__':

get_sum(5)

具體的操作還是和上面的 pdb 的操作一樣:

你看,上面帶了點兒高亮,是不是順眼了很多?還不趕緊去試試。 

優秀開發者必備的四種品質

你覺得自己算是一名優秀的開發者嗎?如果是的話,那你有沒有考慮過作為一名優秀的開發者,你具備哪些優秀的品質?好的開發者和差的開發者區別在 經驗?技能?還是天賦?如何才能成為一名優秀的開發者?1.具有很強的分析思維 作為一名優秀的開發者,你需要思考 觀察資料,記憶 分析這些現象和內容,並解決問題。雖然這...

優秀的開發者 vs 糟糕的開發者

優秀的開發者是乙個藝術家,乙個享受創作過程的工匠。糟糕的開發者只將自己當作負責產生 的碼農。優秀的開發者了解客戶的問題。糟糕的開發者只了解手頭的技術問題。優秀的開發者會不斷努力去理解 為什麼 然後去實現,同時能夠把握大局。糟糕的開發者專注於構建類 方法和配置檔案,而不理會大局。糟糕優秀的開發者了解產...

優秀的開發者 vs 差的開發者

如果你認為使用 優秀 和 差 來區分開發者不妥的話,也可以將這些看作是初級開發者和資深開發者之間的區別。但無論如何,多看看其他的優秀開發者 或資深開發者 是如何做的,對於自身技能 工作方式的提公升有很大的幫助。優秀的開發者是乙個藝術家,乙個享受創作過程的工匠。差的開發者只將自己當作負責產生 的碼農。...