之前写比较复杂的 shell脚本的时候,经常会用 -x
来调试,很方便也很清晰。
然后我就在想 python 脚本是不是也有类似的调试方法。
一查果然也有,就是 pdb
;
感觉也挺好用的,这里记录下使用过程。
一、Python pdb 简介
Python 的 pdb,是其自带的一个调试库。
它为 Python 程序提供了交互式的源代码调试功能,是命令行版本的 IDE 断点调试器,完美地解决了不借助工具进行调试的问题。
二、Python pdb 使用方法
使用方法有两种:
1、import 使用
# test.py
import pdb
pdb.set_trace()
a = 20
b = 10
c = 15
e = (a + b) * c
print "(a + b) * c =", e
e = ((a + b) * c)
print "((a + b) * c) =", e
e = a + (b * c)
print "a + (b * c) =", e
2、命令行直接用
python3 -m pdb test.py
三、Python pdb 运行简析
当运行这个程序时,它的输出是下面这样的:
./test.py
> /tmp/test.py(8)<module>()
-> a = 20
(Pdb)
(Pdb) n
> /tmp/test.py(9)<module>()
-> b = 10
(Pdb)
> /tmp/test.py(10)<module>()
-> c = 15
(Pdb)
> /tmp/test.py(12)<module>()
-> e = (a + b) * c
(Pdb)
> /tmp/test.py(13)<module>()
-> print "(a + b) * c =", e
(Pdb)
(a + b) * c = 450
> /tmp/test.py(15)<module>()
-> e = ((a + b) * c)
(Pdb)
> /tmp/test.py(16)<module>()
-> print "((a + b) * c) =", e
(Pdb)
((a + b) * c) = 450
> /tmp/test.py(18)<module>()
-> e = a + (b * c)
(Pdb)
> /tmp/test.py(19)<module>()
-> print "a + (b * c) =", e
(Pdb)
a + (b * c) = 170
--Return--
这里 pdb 有一些 Debugger Commands ,比如:
n + 回车 : 继续执行下一句
p 变量名 + 回车 : 打印变量名 和它的值
b 断点行号 + 回车: 在某行设置断点
c + 回车 : 一直运行到下一个断点
更多的 pdb 使用详情,请戳参考文档: pdb — The Python Debugger
来源:CSDN
作者:一得的跋涉
链接:https://blog.csdn.net/weixin_44648216/article/details/104071409