【AMAD】Pysnooper -- 别再用print进行debug了
简介
pysnooper
是低配版debugger,别再用print进行debug了。
动机
想象一个场景,你的Python代码运行后不产生你要的效果,你想要知道为什么。
你知道一般这种情况,你需要一个debugger,但是你不想很麻烦的去搭建debugger工具然后运行,这很费时间。
作用
你需要的其实就是,想要知道程序的哪些行运行过,哪些行没有运行,以及一些局部变量的值。
你会说只要在何时的位置使用print
就可以做到。
pysnooper
1也可以帮你做到这些事,但是你不需要去斟酌在哪些地方加入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 ,这个目录下的文件全是打印缓存,失败的任务也保存在这里.把这里的文件全部删除,然后再重新启动 ...
随机推荐
- linux中强大的编辑工具vim
先来个图镇贴 vim是一个模式编辑器.由三种主要模式比较常用: 1.命令(Normal)模式:默认模式,移动光标,剪切/粘贴文本 2.插入(Insert)或编辑模式:修改文本 3.扩展命令(exten ...
- 【环境配置】出现:Microsoft Visual C++ 14.0 is required 的解决方案
参考blog https://download.csdn.net/download/amoscn/10399046 https://blog.csdn.net/weixin_42057852/arti ...
- Codeforces Round #446 Div1 E
题目大意 有n个数,进行k轮操作:随机一个i,让\(a_i\)减1,然后ans加上\(\Pi_{j\neq i}a_i\). 求ans的期望. 分析 发现,造成的伤害就是原来的ai的积减去k轮操作后的 ...
- Monkey初步使用
版权声明: 本账号发布文章均来自公众号,承香墨影(cxmyDev),版权归承香墨影所有. 允许有条件转载,转载请附带底部二维码. 一.什么是Monkey Monkey是Android自身提供的,可以通 ...
- [Python]token的生成及验证
hmac模块(仅在python3中可以使用) 简介: HMAC是密钥相关的哈希运算消息认证码,HMAC运算利用哈希算法,以一个密钥和一个消息为输入,生成一个消息摘要作为输出. 典型应用: HMAC的一 ...
- 51 Nod 1101 换零钱(动态规划好题)
1101 换零钱 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注 N元钱换为零钱,有多少不同的换法?币值包括1 2 5分,1 2 5角,1 2 5 ...
- jmeter参数化之 CSV data set config
第一步:测试计划右键--创建线程组 第二步:选择线程组:右键--sample---创建:http request 配置协议类型和服务名称,method 和path 第三步:选择线程组下的http ...
- (十)C语言之putchar、getchar
- git下载fastadmin
mac git下载后,环境配置运行会如下图 一 下载相对应系统的node.js https://nodejs.org/en/download/ 安装就是一直下一步.... 二 指令终端.cd 到对应项 ...
- leetcode-hard-array-76. Minimum Window Substring -NO
mycode 不会.. 参考: class Solution(object): def minWindow(self, s, t): """ :type s: str : ...