在Python中,語(yǔ)法錯(cuò)誤可以被Python解釋器發(fā)現(xiàn),但邏輯上錯(cuò)誤或變量使用錯(cuò)誤卻不容易發(fā)現(xiàn),如果結(jié)果沒(méi)有符合預(yù)期,則需要調(diào)試,一個(gè)很好的調(diào)試工具:Python自帶的pdb模塊。pdb是Python自帶的調(diào)試模塊。使用pdb模塊可以為腳本設(shè)置斷點(diǎn)、單步執(zhí)行、查看變量值等。
pdb可以用命令行參數(shù)的方式啟動(dòng),也可以使用import 將其導(dǎo)入后再使用。
 代碼如下:
>>> dir(pdb)  
['Pdb', 'Repr', 'Restart', 'TESTCMD',.....,'re', 'run', 'runcall', 'runctx', 'runeval', 'set_trace', 'sys', 'test', 'traceback']  
常見(jiàn)的pdb函數(shù)有以下幾個(gè):
【pdb.run()函數(shù)】
>>> 該函數(shù)主要用于調(diào)試語(yǔ)句塊
>>> 基本用法如下
 代碼如下:
>>> help(pdb.run)  
Help on function run in module pdb:  
  
run(statement, globals=None, locals=None)  
>>>參數(shù)含義
statement: 要調(diào)試的語(yǔ)句塊,以字符串的形式表示
globals:   可選參數(shù),設(shè)置statement運(yùn)行的全局環(huán)境變量
locals:     可選參數(shù),設(shè)置statement運(yùn)行的局部環(huán)境變量 
>>>簡(jiǎn)單示例
 代碼如下:
>>> import pdb                # 導(dǎo)入調(diào)試模塊  
>>> pdb.run('''''               # 調(diào)用run()函數(shù)執(zhí)行一個(gè)for循環(huán) 
for i in range(3): 
    i *= 3 
    print(i) 
    ''')  
> <string>(2)<module>()       
(Pdb) n                       # (Pdb)為調(diào)試命令提示符,表示可輸入調(diào)試命令  
> <string>(3)<module>()  
(Pdb) n                       # n(next)表示執(zhí)行下一行  
> <string>(4)<module>()  
(Pdb) print(i)                # 打印變量i的值  
0  
(Pdb) continue                # 繼續(xù)運(yùn)行程序  
0  
3  
6  
【pdb.runeval()函數(shù)】
>>>該函數(shù)主要用于調(diào)試表達(dá)式
>>>基本用法如下
 代碼如下:
>>> help(pdb.runeval)  
Help on function runeval in module pdb:  
  
runeval(expression, globals=None, locals=None)  
>>> 參數(shù)含義
expression: 要調(diào)試的,
新聞熱點(diǎn)
疑難解答
圖片精選