這是最簡單的調試方法,直接顯示程序數據。即便是調試Java或者C這種巨麻煩的編譯語言,print仍然是常用工具。當然,我們講的是Python,是比Java和C要方便100倍的動態解釋語言,因此這個print就更有力了。
2.使用IDLE的調試器
在“Python Shell”窗口中單擊“Debug”菜單中的“Debugger”菜單項,就可以啓動IDLE的交互式調試器。這時,IDLE會打開“Debug Control”窗口,並在“Python Shell”窗口中輸出“[DEBUG ON]”並後跟一個“>>>”提示符。這樣,我們就能像平時那樣使用這個“Python Shell”窗口了,只不過現在輸入的任何命令都是允許在調試器下。我們可以在“Debug Control”窗口查看局部變量和全局變量等有關內容。如果要退出調試器的話,可以再次單擊“Debug”菜單中的“Debugger”菜單項,IDLE會關閉“Debug Control”窗口,並在“Python Shell”窗口中輸出“[DEBUG OFF]”。Go:繼續。Step,Over:單步執行。Step將進入到函數內部進行調試,Over是指不進入到函數內部進行調試,而是直接執行完這個函數。
例如:
import sys, os
def test(arg1, arg2):
print "begin test..."
fun1('1', '2')
print arg1
print arg2
def fun1(arg1, arg2):
print arg1
print arg2
調試
>>>
[DEBUG ON]
>>> test(2,3)
begin test...
1
2
2
3
[DEBUG ON]
在打開調試器的情況下,也可設置斷點調試。
3.pdb調試
pdb 是 python 自帶的一個包,爲 python 程序提供了一種交互的源代碼調試功能,主要特性包括設置斷點、單步調試、進入函數調試、查看當前代碼、查看棧片段、動態改變變量的值等。pdb 提供了一些常用的調試命令。
命令 | 解釋 |
---|---|
break 或 b 設置斷點 | 設置斷點 |
continue 或 c | 繼續執行程序 |
list 或 l | 查看當前行的代碼段 |
step 或 s | 進入函數 |
return 或 r | 執行代碼直到從當前函數返回 |
exit 或 q | 中止並退出 |
next 或 n | 執行下一行 |
pp | 打印變量的值 |
help |
幫助 |
4.利用reload,exec,eval,python -i調試,具體用法見