习惯了Pycharm的用户,通常都喜欢Pycharm强大的debug配置。但pycharm虽好,但需要图形化的UI界面,事实上在很多项目开发上有UI界面是很奢侈的事情。所以在无界面的vim下debug,难道只能用print了?那效率就太低下了。

事实上,python有内置的断点工具,直接在代码中插入即可完成断点调试。

在python3.7之前,这个工具叫pdb,即python debugger的缩写。
在python3.7之后,breakpoint直接变成了关键字,可以之际作为断点插入。


断点工具的使用

先介绍pdb,即python3.7之前的版本:

import pdb
a = 3
b = 4
pdb.set_trace() # insert breakpoint
a += 1
b = b + a
pdb.set_trace() # insert breakpoint

如上所示的脚本,我一共插了两个断点,分别是第4行和最后一行。插入断点之后的脚本,咱们正常运行即可,假设保存为t1.py:

python t1.py

运行之后,会出现:

-> a += 1
(Pdb)

程序卡在第一个断点处,这个时候有个(Pdb)在左侧,你输入不同的指令就可以做出不同的反应。比如,你想查看变量b的值,可以输入:

-> a += 1
(Pdb) p b

p后面加什么变量名,咱们就可以看到什么变量的值。这一步很easy,不就不过多展示,可以自己做实验跑跑。
输入c,就会跑到下一个断点

-> a += 1
(Pdb) p a
3
(Pdb) p b
4
(Pdb) c
--Return--
> /path/username/experi/breakpoint/t1.py(5)<module>()->None
-> a += 1
(Pdb) p a
4
(Pdb) p b
8
(Pdb)

就是这么简单~

对于Python3.7以上,那就更简答了,上述代码改成这样就可以了:

a = 3
b = 4
breakpoint() # insert breakpoint
a += 1
b = b + a
breakpoint() # insert breakpoint

不需要import,单词意思非常明晰,然后使用操作跟pdb一毛一样,只是包装了一下而已。~

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐