关于代码调试的技巧,我之前写过很多文章,总共有将近10篇。之前关注过的同学也应该看看。经过。还没有看过的同学,欢迎阅读:第9章:调试技巧其中一个是关于pdb的调试技巧:介绍了两种pdb调试入口,也是大家比较熟悉的。这里我带大家回顾一下第一种:指定-mpdb打开$python-mpdbpdb_demo.py第二种:使用pdb.set_trace()在代码中设置断点importpdbpdb.set_trace()但在其实,pdb还有另外两种调试方式。第一种方式可能99%的开发者都不会使用,甚至看不到。这两个方法是通过PythonConsole的交互界面实现的。首先,我准备了一个名为utils.py的Python文件,它定义了一个sum的效用函数(仅供演示)。defsum(*args):result=0forarginargs:result+=argreturnresult然后在终端输入Python进入Console模式,导入该模块,调用sum函数。正常情况下,该功能可以正常工作。>>>importutils>>>utils.sum(1,2,3)6但是如果你的参数类型传入str,函数会报错~>>>utils.sum(1,2,"3")Traceback(最近调用last):文件“”,第1行,在文件“/Users/MING/utils.py”,第4行,总和结果+=argTypeError:不支持的操作数类型(s)for+=:'int'and'str'由于这里的报错是我故意触发的,所以从报错的角度很容易定位。但是在实际应用中,难免会遇到一些无法直接从报错信息中判断出bug的情况。这个时候如果报错后能切换到pdb调试模式就好了~其实pdb是支持这种用法的。只要在当前session中导入pdb,然后执行pdb.pm(),就可以切换到熟悉的pdb调试界面,在报错的地方设置断点,然后就可以查看变量了在运行时任意信息。如果不想等到报错再调试,而是想从头开始进入调试模式,可以使用pdb.runcall()函数。有的同学可能还会想到pdb.run()和pdb.runeval()这两个函数,但这两个方法需要提前调试函数中的断点,比较麻烦,不建议在下面使用正常情况。总结一下,主要有六种pdb调试方式:python-mpdb:运行python文件时直接进入调试模式pdb.set_trace():提前设置断点,然后直接运行python文件pdb.run():提前设置断点,然后直接运行python模块Console模式下直接报错,定位报错位置。pdb.runcall():可以直接调试代码片段,无需设置断点。其中,pdb.pm()是本文的重点。虽然冷门,但是很好用,推荐给大家。以上就是我今天的分享。我希望它对你有用。如果你也有有用的调试技巧,欢迎留言分享,互相学习。文末介绍三个自己写的在线文档:第一个文档:PyCharm中文指南1.0文档历时两个多月整理了100个PyCharm使用技巧。为了让新手直接上手,我花了很多时间录制了上百个GIF动图,有兴趣的可以去网上文档看。第二篇文档:PyCharmBlackMagicGuide1.0文档系统包含了各种Python冷门知识,各种PythonShell的玩法,疯狂的Python技巧,超详细的Python进阶知识解读,非常实用的Python开发技巧等等。第三篇文档:Python中文指南1.0文档耗时三个月编写了适合Python零基础初学者的完整中文教程,大量的代码案例,让初学者对代码的操作有直观的体验,该教程既有深度又有广度。每篇文章都会标注内容的难易程度,是基础还是进阶,供读者选择。是不可多得的Python中文电子教程。