在一开始~当初我还是~使用print调试~
在那之后我用了pycharm,开始用断点调试。再之后用了vs code,在调试用脚本输入超参的代码调试时遇到了问题。
突然有一天,我突然发现,原来我还可以使用pdb调试。
pdb 是 一个python 包,import之后可以实现设置断点、单步调试、进入函数调试、查看当前代码、动态改变变量的值等操作。
我们仅需要在我们希望程序停下来的地方按照如下设置:
# some code... import pdb pdb.set_trace() # some code...
然后在运行程序的时候就可以在这个地方停住显示
> 你设置的断点的.py文件路径(断点的行号)正在执行的函数名() -> 接下来马上要执行的代码 (pdb)
然后我们就可以在(pdb)的符号后面输入一些指令或者变量名来进行一些操作。
命令 | 效果 |
---|---|
break / b | 用命令设置断点 |
continue / c | 继续执行程序到下一个断点 |
list / l | 查看当前行的代码段 |
step / s | 进入函数 |
return / r | 执行代码直到当前函数的返回 |
exit / q | 中止并退出断点调试 |
next / n | 继续执行下一行 |
pp | 打印变量的值 |
help | 帮助 |
可以查看输入的变量的值
假设原始代码test.py里的代码如下
import pdb pdb.set_trace() # test case a = 1 b = 2 c = 3 d = 4
我们运行程序可能见到如下情况:
> test.py(5)<module>() -> a = 1 (pdb)n -> b = 2 (pdb)a 1 (pdb)b *** NameError: name 'b' is not defined (pdb)n -> c = 3 (pdb)b 2
赶快找一段程序自己试试吧~