代码调试的N种姿势

再牛的程序员也没法一口气把代码全部写正确,通常做法就是写一小段然后验证代码正确性,再继续写下一段,这样能保证代码不会错得太离谱。怎么衡量一小段代码呢?在你觉得这段代码没有十足把握的情况下就应该停下来验证一下。

调试的本质是确认你认为正确的事情确实是正确的,这次来介绍一下 Python 中调试代码的 N 种姿势

print

print 函数使用简单方便,所以开发中我们经常使用它做简单调试,来打印某个值是否是否则预期的。 不过 print 也有不足的地方,如果想打印一个复杂对象,或者是很长的字典、列表等复合对象时,打印的结果堆在一行,很不友好,想看下数据的结构还不容易,例如:

640?wx_fmt=png

pprint

好在 Python 内置了另一个打印工具 pprint,全称叫 pretty printer,顾名思义就是加了美颜效果的打印工具,在打印复杂的对象时,以可读的格式输出,当然你还可以自己指定缩进和行的最大宽度,这在遇到复杂对象时非常有帮助,例如:

640?wx_fmt=png

prettyprinter

人类对美的追求是没有终点的,虽然 pprint 已经够用了,但是总有人觉得它还不够美,于是有人就在此基础上搞出一个更强大的打印工具叫 prettyprinter, 这是个第三方工具,需要额外安装。你可以看到时间对象更可读,不过我有感觉有点冗余,在Linux环境下还可以变色。项目地址:https://github.com/tommikaikkonen/prettyprinter/tree/master/prettyprinter

640?wx_fmt=png

logging

在开发过程中使用 print 调试代码方便又简单,但上线前一定要把这些冗余代码去掉,否则还会影响性能。那么线上某些关键位置想跟踪怎么办,这时 logging 的作用就发挥出来了。很多时候在测试环境不会出现的异常放正式环境就出现了,因为你要面对的各种临界条件,使用 logging 的好处不言而喻,可以设置不同的日志级别,例如 debug、info、error 等级别,你还可以将日志持久化,方便后续做日志追踪。

PDB

PBD 是 Python 的内置模块,是一个真正用于代码调试的,因为你可以在代码运行的时候设置断点、单步调试、进入函数调试、查看当前代码、查看栈片段、动态改变变量的值等。PDB 在早期还没有集成开发工具IDE的时候,非常有用(现在也使用),只需要一个命令:

python -m pdb test.py

就可以进入调试模块,不喜欢用 IDE 的同学可以考虑使用。

PyCharm

但是现在有更先进的开发工具了,像 PyCharm、PyDev 这样的工具都支持代码调试、打断点、动态修改变量值等等,不仅如此,PyCharm 还支持远程调试。在 Bug 隐藏比较深的情况下,我们有时就会祭上这样的大杀器。

你还有那些好用的神技能,欢迎留言分享

640?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值