在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)
疑難解答
圖片精選