Python代码调试——Pycharm的实用调试方法
方法一:快速使用,由以下博客提供:https://blog.csdn.net/qq_45753718/article/details/122079032
1.首先在怀疑出错的代码处的前面设置断点
2.点击pycharm debug按钮
3.step over 也就是 F8 进行单击调试,只有光标在哪一行就是即将运行的代码 只有光标跳到下一行,这一行才会执行
4.运行到某一个自定义函数 def的时候如果想知道里面如何运行 单击 step into(F7) 然后继续step over
最后可能返回一个result 回到main函数继续step over。
5.如果是嵌套函数,函数里面还有别的自定义函数 可以运行到那一行时继续step into
6.如果想从嵌套函数出来 运行step out 相当于直接运行完了当前的整个内置的函数
7.step into就是无论函数是否是当前程序还是import进来的包 都要跳转过去(F7)。
step into my code 就是只跳进去我的代码,而忽略第三方库代码 。(Alt+shift+F7)
8.run to cursor 就是把光标放在哪里 就直接运行到哪里。
快捷键口诀:7进,8出,9跳。
9,F9是直接跳到下一个断点处。
一些调试的相关入门知识:ref《编写高质量代码改善python程序的91个建议》20231127
一、
调试与定位——本质是复杂的搜索问题,必须通过大量分析才能接近真相;
很多时候调试要到底层,研究内部的数据或代码;
必须有丰富的知识,熟悉问题域各模块工作及写作方式。
除了使用调试器,一定要借助日志来帮助定位问题。logging是个方便的日志功能,可以将日记记录添加到代码中。通过查看日志输出,可以了解代码执行,并快速定位问题。
如果涉及到大量代码频繁操作,一定要使用快捷键,效率蹭蹭。
二、断点与调试
断点可以使能、不使能,或者条件使能。
三、查看变量的三种方式
3.1插入断点,Debug运行。在面板下就可看到变量,同时针对特定变量,右击add to watchers可以专门监控。
3.2 Eidt Configuration中勾选Run with Python console,Run后,点击控制台的“眼镜”图标,即可展开变量。
3.3 print打印方式。
四、CProfile库可记录执行时执行时间、函数调用次数等方式。导入import cProfile后,在代码中加入cProfile.run(“被测函数")即可获得代码运行信息。可以探测出该代码的性能瓶颈。
pyinstrument,py-spy:也是对Python代码性能分析。其中py-spy最快,cProfile最慢。
五、常见的Python典型问题与定位手法:
高耗时问题/函数调用栈过深/IO瓶颈/内存泄露/死锁类/正则回溯失控