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