全网最实用的Debug调试技巧汇总
一、思考
1、什么是debug
找茬
找软件的茬
发现程序的缺陷
2、为什么需要debug?
谁都不敢保证,写的代码没有任何问题
高效查找软件异常
一位优秀的开发工程师
20%的时间写代码
80%的时间用来排错
“不会debug” == “不会代码” == “低工资”
3、debug需要具备哪些功能?
控制程序的执行
想停则停,想执行则执行
随心所欲
设置断点
在指定位置停止
查看当前命名空间(程序栈)中变量
二、Python中的Debug大法
案例代码如下所示:
创建deubg_skills_demo.py文件
创建gifts.py文件
1、Pdb操作
系统自带的debug工具(无需安装)
将以下代码放在需要调试的地方(类似于设置断点)
当程序执行到上述代码所在位置时,会自动开启一个console终端
"->"是接下来要执行的代码(当前还未执行)
可以在终端运行的命令
list或者l
显示当前运行的代码
默认列出11行代码
p变量名或者p需要运行的表达式
打印变量的值
step或者s
如果在函数调用处执行,则会进入函数体内部
next或者n
如果在函数调用处执行,则不会进入函数体内部
enter
重复执行上一次的命令
b(reak) [ ([filename:]lineno | function) [, condition] ]
设置断点
filename可选,如果不传,默认在当前文件设置断点
c或者continue
继续往下运行,在下一个断点处停下来
disable断点编号
禁用断点
enable断点编号
启用断点
cl或者clear 断点编号
清除断点
display或者undisplay 变量
监听或者不监听某个变量
如果变量值改变,会自动显示
h或者help
帮助信息
h具体命令
具体命令的帮助文档
h pdb
pdb的完整文档
三、Pycharm debug操作
1、打开Python Prompt
会出现一个ipython的控制台
可在控制台查看当前命名空间中的变量
也可执行Python表达式
2、Step Over/F8
按调试工具栏中的
类似于pdb中的next
程序不会进入到函数体内部
3、Step Into/F7
按调试工具栏中的
类似于pdb中的step
程序会进入到函数(方法)体内部、系统源码、第三方模块源码中
4、Step Out/Shift+F8
从函数体内部跳出
5、Step Into My Code
Step Into My Code / ALT+Shift+F7
按调试工具栏中的
主要关注自己写的代码
从系统源码、第三方模块源码中跳到自己写的代码中
6、Evaluate Expression
在当前命名空间内计算表达式的值
7、Quick Evaluate Expression
快速计算表达式的值
8、Watching
类似于pdb中的display
可以监听某个变量或者表达式的值
四、总结
作为代码编写者,掌握代码的调试技巧是必备的
能提升工作效率,提高代码质量
Python中Debug调试工具和技巧非常多
最常用、最实用的知识点,本文均有覆盖
本文由柠檬班可优老师原创,转载需注明出处!
领取专属 10元无门槛券
私享最新 技术干货