打斷點(diǎn)是調(diào)試程序的常用方法之一。在 Python 中,我們可以使用 pdb 模塊來(lái)設(shè)置斷點(diǎn)。
import pdb def sum(a, b): pdb.set_trace() # 設(shè)置斷點(diǎn) return a + b print(sum(2, 3))
上面的代碼中,我們?cè)?sum 函數(shù)的第一行設(shè)置了一個(gè)斷點(diǎn)。運(yùn)行程序后,當(dāng)程序執(zhí)行到此處時(shí),會(huì)停在該行,等待我們執(zhí)行調(diào)試命令。
調(diào)試命令:
- h(elp):輸出命令列表。
- n(ext):執(zhí)行下一行代碼。
- s(tep):進(jìn)入函數(shù)。
- c(ontinue):繼續(xù)執(zhí)行程序。
- b(reak):設(shè)置斷點(diǎn)。
- p(rint):打印變量的值。
可以在命令前加上問(wèn)號(hào)獲取該命令的幫助。例如,輸入 ?n 可以獲取 help(next) 的幫助。
>/path/to/file.py(5)sum()->return a + b (Pdb) n >/path/to/file.py(7)<module>()->print(sum(2, 3)) (Pdb) p a 2 (Pdb) p b 3
運(yùn)行調(diào)試命令后,可以查看變量的值,執(zhí)行下一行代碼等。
在調(diào)試完成后,可以使用命令 q(uit) 退出 pdb。
>/path/to/file.py(7)<module>()->print(sum(2, 3)) (Pdb) q
使用 pdb 模塊可以方便地對(duì) Python 程序進(jìn)行調(diào)試。但在實(shí)際開(kāi)發(fā)中,我們還需要對(duì)代碼進(jìn)行規(guī)范化、調(diào)試信息的記錄等,來(lái)提高程序的可維護(hù)性。