【AMAD】Pysnooper -- 别再用print进行debug了
简介
pysnooper是低配版debugger,别再用print进行debug了。
动机
想象一个场景,你的Python代码运行后不产生你要的效果,你想要知道为什么。
你知道一般这种情况,你需要一个debugger,但是你不想很麻烦的去搭建debugger工具然后运行,这很费时间。
作用
你需要的其实就是,想要知道程序的哪些行运行过,哪些行没有运行,以及一些局部变量的值。
你会说只要在何时的位置使用print就可以做到。
pysnooper1也可以帮你做到这些事,但是你不需要去斟酌在哪些地方加入print,你只需要在你感兴趣的函数上面加入一个装饰器,你就可以获得函数每一步的运行日志了。
pysnooper相当于其它的代码调试工具有什么突出点呢?你可以把它用在你的屎山代码库中,只要加上装饰器,然后将调试信息输出到你指定的log文件就行。
用法

热度分析
截止2019.5.2,这个仓库已经获得了8819star, 476fork。而这个仓库第一个commit的日期是2019.4.14!!!
这个仓库的传播热度是我前所未见的,证明真的碰到了大多数人的痛点!
源码分析
通过源码可以看出作者的Python编程经验很足。很多2to3的特性都了解。
TODO:
- 为什么可以捕获函数运行时每一次执行?
- 为什么可以捕获函数运行时每一次执行的local变量
个人评分
| 类型 | 评分 |
|---|---|
| 实用性 | ⭐️⭐️⭐️⭐️ |
| 易用性 | ⭐️⭐️⭐️⭐️⭐️ |
| 有趣性 | ⭐️⭐️⭐️⭐️ |
【AMAD】Pysnooper -- 别再用print进行debug了的更多相关文章
- [改变自己wordpress.2]至wordpress再加上简单的debug sql调试.
或者说,同事. 需要帮助她打印出来sql 调试输出到页面sql 在这里,我们使用插件或一个的方式来启动配置文件wordpress的debug 在插件文件夹 wordpress/wp-content/p ...
- MonoBehaviour.print和Debug.Log是同样的作用
MonoBehaviour.print("identical------------------------");
- PHP: How to print a debug log?
file_put_contents('php://stderr', print_r("hello ", TRUE)); 转自: http://stackoverflow.com/q ...
- (数据科学学习手札127)在Python中使用icecream实现高效debug
本文示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 尽管有那么多花里胡哨的debug工具和方式 ...
- Unity用GUI绘制Debug/print窗口/控制台-打包后测试
Unity游戏视窗控制台输出 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享 ...
- Perl Print Win32 Console Windows 控制台 print Unicode 问题
参考资料: https://stackoverflow.com/questions/15224400/perl-on-windows-problems-with-encoding https://te ...
- Maven之debug技巧
mvn eclipse:clean eclipse:eclipse -Dwtpversion=2.0 可以将项目编译为web项目,然后再项目上右键debug as server即可.
- linux kernel driver debug
1. print printk(): never pr_debug(): always good dev_dbg(): prefered when you have a struct device o ...
- print spooler 服务无法启动 打印机全部消失
这往往是失败的打印任务导致的. 打开 C:\Windows\System32\spool\PRINTERS ,这个目录下的文件全是打印缓存,失败的任务也保存在这里.把这里的文件全部删除,然后再重新启动 ...
随机推荐
- 【51nod 2004】终结之时
题目大意 "将世界终结前最后的画面,深深刻印进死水般的心海." 祈愿没有得到回应,雷声冲破云霄,正在祈愿的洛天依受到了极大的打击. 洛天依叹了口气,说:"看来这个世界正如 ...
- [人物存档]【AI少女】【捏脸数据】时尚
点击下载(城通网盘):3in1.zip 点击下载(城通网盘):存档.zip
- [人物存档]【AI少女】【捏脸数据】甜美粉色
点击下载(城通网盘):AISChaF_20191028024804811.png
- 《剑指offer》算法题第八天
今日题目(对应书上第39~42题): 数组中出现次数超过一半的数字 最小的k个数(top k,重点!) 数据流中的中位数 连续子数组的最大和 今天的题目都比较经典,特别是第2题. 1. 数组中出现次数 ...
- less命令:查看文件内容
less 命令的作用和 more 十分类似,都用来浏览文本文件中的内容,不同之处在于,使用 more 命令浏览文件内容时,只能不断向后翻看,而使用 less 命令浏览,既可以向后翻看,也可以向前翻看. ...
- Data Science Competition中的工具汇总
除了基础的pandas,scikit-learn,numpy,matplotlib,seaborn以外 ( 1 ) category_encoders github 属于scikit-learn co ...
- C# WebServices 客户端服务端
一.编写一个WebService 开发环境:VS2012 1.编写webservice阶段 打开VS2012,新建一个空的web应用程序,我这里用的Framework版本是4.5的 新建好web应用程 ...
- DB 分库分表(5):一种支持自由规划无须数据迁移和修改路由代码的 Sharding 扩容方案
作为一种数据存储层面上的水平伸缩解决方案,数据库Sharding技术由来已久,很多海量数据系统在其发展演进的历程中都曾经历过分库分表的Sharding改造阶段.简单地说,Sharding就是将原来单一 ...
- C++入门经典-例9.5-为具体类型的参数提供默认值
1:默认模板参数是指类模板中由默认的数据类型作为参数的参数,在模板定义时,还可以为默认的数据类型声明,变量,并为变量赋值.代码如下: // 9.5.cpp : 定义控制台应用程序的入口点. #incl ...
- python调用系统命令的方法
1.os模块 (1)system()方法 这个方法是直接调用标准C的system() 函数,在一个子终端运行系统命令 (2)poen()方法 这个方法执行命令后通过一个管道文件将结果返回 3.subp ...