使用 snoop, 像读文章一样读源码。
不得不说 开源项目没有一个提纲 , 看起来太操蛋了。问了作者, 作者说 , 你运行下主函数, 然后慢慢跟 。。。
没有目的地概览 , 不知不觉就追究到细节里面去了。
所以这一篇文章的目地就是 , 如何在没有提纲的情况下 , 能更好的只关注流程 , 而不是细节 。
开始 :
- python DEBUG 模块介绍 :
前段时间看过挺多文章提到 pysoonper 这个调试模块,有兴趣的可以百度一下.
个人尝试了一下,篇幅过大的 DEBUG 不适合用 pysoonper , 因为没有缩进!
这几天偶然遇到一个二次封装的模块 snoop, 完美地解决了这个问题. - 操作步骤 :
- 1 . 在
eric6.py
的main()
函数上加 snoop 装饰器;
- 2 . 用 vscode 打开
eric6start_.log
文件 (8 层深度 log 文件 34W 行,pycharm 对大文件支持很差);
发现可以折叠 , 但是最大可折叠等级只到 5 级 , 而且无法对对应等级折叠 , 有点遗憾 。也许是.log 格式选得不太好, 不知道是否有更好的后缀格式。
- 3 . vscode 配置 log 文件关键字高亮;
安装高亮插件
配置高亮关键字
将 call
和 return
给加进去.
- 4 . 增加阶段关键字;
加 #000
是为了方便搜索 。
需要自己手动折叠 。
可以发现 每个 splash.showMessage()
都是一个阶段 , 展开折叠之后就是每个阶段具体执行细节 。
# ps: vscode 阅读 log 文件还是有一些不方便的地方,除了在 2. 中提到的,还有包括关闭文件再打开,折叠状态不会保留,有其他更好的方式 请留言告诉我,谢谢.
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 PyQt!