如何使用 pdb 来性感 debug 你的 Python 代码?

当你的代码写得多了,你总会出现这样或者那样的错误,有时候代码突然可以用,有时候代码又突然傻逼,有时候你只是离开一会,它就自动好了…就像女生的心思,总是让人捉摸不透,总是那么的魔幻。
今天,小帅b来跟你说说 debug ,其实 debug 还是挺重要的,它除了可以帮助你自己发现代码自身的 bug 之外,你还可以通过 debug 清楚的知道代码的执行流程,比如变量是怎么赋值的,数据是如何改变的等等,你都可以通过 debug 手段清楚的看到这些玩意的变化。
除此之外,当你在学习一个新的库或者新的代码特性的时候,debug 也是常用的学习手段,因为你可以通过它更容易理解代码为什么是那样写的。
接下来我会跟你说说 Python 内置的 debug 工具 pdb 的使用。
我们先来看看这样的例子:
很简单,这里我们定义了个方法,然后传递参数 name 返回一个字符串。
不过你可以看到第二行调了一个 breakpoint 方法,这是打断点的意思,它是 Python 内置的,直接调用即可,接着我们来运行一下这个 py:
这时候可以看到:
第一行:> 后面告诉我们打断点的位置
第二行:-> 就是此刻 Python 执行到的暂停位置(因为我们在此前打了断点了)
第三行:(pdb):意思是说我们可以使用 pdb 这个工具的相关命令了。
如果你不知道如何使用 pdb 的调试命令,可以输入 help 得到相关的帮助:
在这里我跟你说下 pdb 常常会用到的几个命令的意思:
1、p + 参数 :查看参数的值
2、n :单步跳过
3、s :单步进入
4、c :继续执行
5、w :显示上下文信息
6、a :查看函数的参数列表
7、ll :  列出当前的源码
8、b : 设置断点
9、q : 退出 debug
比如现在我们想知道参数 name 的值是什么,我们就可以这样:
显示参数:
显示上下文信息:
执行当前代码(单步进入):
继续执行:
在 debug 的过程中,你还可以修改参数的值,比如把 name 直接改成 sb:
列出当前的源码:
我刚给你演示的这些是在 Python3.8 版本下执行的,如果你用的是 Python 3.7 以下的版本,是用不了 breakpoint 这个函数的:
所以如果想要在 Python3.7 以下的版本使用 pdb ,那么你就需要自行导入了,并且你要打断点的话应该调用的是 set_trace():
那么这个时候,你就可以在  Python3.7 以下的版本使用 pdb 了:
当然,你还可以什么断点都不设置,使用命令的方式执行 pdb ,比如我们把刚刚的断点都去掉:
接着我们通过 pdb 命令来执行它:
python3 -m pdb xxx.py
这时候可以看到,它是直接从第一行开始打断点:
哦对了,如果你使用 VIM 编辑器的话,可以使用 repl 插件结合 ipdb 实现调试,像我这样:

ok,以上,希望对你有帮助,我们下回见,peace!

点击留言

扫一扫

学习 Python 没烦恼

(0)

相关推荐

  • Bug与Debug的随笔

    bug的本意是指昆虫.小虫.损坏.缺陷等意思,在互联网时代还有一种引申意义,用来形容某人/物超乎想象的厉害,那简直就是开挂的人生,系统的bug! 一般地,在码农的世界了,bug是在电脑系统或程序代码中 ...

  • Python也有pdb

    来源:Python 技术「ID: pythonall」 C有gdb,Python也有pdb 写过C语言的同学们想必都很怀念(读者:¿)gdb调试器,使用gdb可以随意在程序运行过程中暂停流程.查看变量 ...

  • (2条消息) 使用spyder3调试python程序的简明教程

    说是简明教程,其实是我自己尝试用spyder调试python程序的过程的一个记录,因为spyder的调试功能是基于pdb,而我又没有pdb的基础,所以刚开始上手时感觉很不习惯,而且那时我又很懒,没去找 ...

  • pdb入门

    q 退出debugh 打印可用的调试命令b 设置断点,b 5 在第五行设置断点h command 打印command的命令含义disable codenum 使某一行断点失效enable codenu ...

  • 她用低成本道具拍性感大片,百万网友每天跪求更新!

    ▼ ▼ 把美丽交给创意 本文来自公众号:艺非凡 微信号 :efifan 你一定想不到 这组照片从道具到摄影到后期 全部都是模特妹子一个人完成的! 别的模特只需要人到位就可以了 但是她一个人就是一个团队 ...

  • 【油画欣赏】集优雅性感于一身的女性,舞动的浪漫主义

    她以画女性形象被人们熟知 她的灵感来自于优雅的女性 她笔下的女孩热情奔放美得让人如痴如醉 Anna Razumovskaya 俄罗斯画家 毕业于俄罗斯国立大学艺术系 擅长油画 水彩 丙烯画等 现为高级 ...

  • ​俄罗斯女摄影师克里斯蒂娜的私房人像摄影,无以复加的黑白性感

    天空之城 蒋敦豪 - 中国新歌声 第1期 来自俄罗斯女摄影师 克里斯蒂娜·卡扎里娜 性感的.柔软的摄影作品 Kristina Kazarina 现居于泰国.白羊座的她, 在摄影方面喜欢热情奔放的画面感 ...

  • 十大85后当红的美女明星!各个雪肤娇嫩性感靓丽太迷人

    虽然影视圈的90后与00后的女星都层出不穷,但85后花旦曾经在影视剧市场可谓是如鱼得水,杨幂.唐嫣.刘诗诗.赵丽颖等人,都经历了从爆红到霸屏,她们各个是雪肤娇嫩,性感靓丽,下面就一起来看一看. 1.杨 ...

  • 李冰冰美出新高度,穿拼色连衣裙优雅性感,身材高挑纤瘦真迷人

    Hi 大家好,我是时尚博主何有强,带你一起「解析造型」,变美变好看! 抹胸连衣裙在现如今非常受欢迎,尤其是女明星们出席活动的时候,总是会自己挑选这种抹胸连衣裙的穿搭,体现出时尚感,而这一次李冰冰出席活 ...

  • 她用低成本道具拍性感大片

    你一定想不到 这组照片从道具到摄影到后期 全部都是模特妹子一个人完成的! 别的模特只需要人到位就可以了 但是她一个人就是一个团队 用最低的成本拍摄 拍出惊人眼球的高端时尚大片 来自美国的黑人女孩@ki ...

  • 靠全裸走红欧美的性感女星

    *特别说明:本文配图来源于网络,多数照片的作者与来源不详,如侵权请联系删. 在国际影坛,性感女星的妆容逐渐浓艳,如同一道靓丽的花火,诱惑众生.想知道有哪些娇媚多姿.身材劲爆的欧洲美女成为性感女神吗? ...

  • 低欲望社会,维密还在贩卖性感

    2016年,日本管理学家大前研一的<低欲望社会>出版,顾名思义,日本年轻人不贪心,不争取,连谈个恋爱都觉得累人. "低欲望"病毒一般在这个星球上悄悄蔓延,虽然大部分年轻 ...

  • 除了性感超模,巴西还有什么时尚?

    吉赛尔·邦臣的奥运会开幕式走秀就不啰嗦了. 不久前,<Vogue Brazil>还放出了一组巴西超模Adriana Lima拍摄的杂志封面. 奥运期间,"巴西双姝"的另 ...