【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 ,这个目录下的文件全是打印缓存,失败的任务也保存在这里.把这里的文件全部删除,然后再重新启动 ...
随机推荐
- idea的maven项目运行出错_java.io.FileNotFoundException: class path resource [spring/sprint-tx.xml] cannot be opened because it does not exist
前提:idea maven ssm 错误信息如下: 严重: Exception sending context initialized event to listener instance of ...
- apache log4j将日志保存在mongodb数据库中(转)
og4j与mongodb整合 Mongo Java driver jar包 log4mongo-java jar包 配置log4j.properties文件,使之整合mongodb: #将Mongod ...
- 【51nod 1847】奇怪的数学题
题目描述 给出 N,K ,请计算下面这个式子: \(∑_{i=1}^N∑_{j=1}^Nsgcd(i,j)^k\) 其中,sgcd(i, j)表示(i, j)的所有公约数中第二大的,特殊地,如果gcd ...
- Prism框架的Module(模块化)编程
Prism框架用的是新版本的,Prism7.1.关于其中的变动,感兴趣的参考https://www.cnblogs.com/hicolin/p/8694892.html 如何告诉Shell(我们的宿主 ...
- Monkey初步使用
版权声明: 本账号发布文章均来自公众号,承香墨影(cxmyDev),版权归承香墨影所有. 允许有条件转载,转载请附带底部二维码. 一.什么是Monkey Monkey是Android自身提供的,可以通 ...
- HYSBZ - 3813 奇数国 欧拉函数+树状数组(线段树)
HYSBZ - 3813奇数国 中文题,巨苟题,巨无敌苟!!首先是关于不相冲数,也就是互质数的处理,欧拉函数是可以求出互质数,但是这里的product非常大,最小都2100000,这是不可能实现的.所 ...
- 圆桌游戏(区间DP)
2.圆桌游戏 (game.cpp/c/pas) [问题描述] 有一种圆桌游戏是这样进行的:n个人围着圆桌坐成一圈,按顺时针顺序依次标号为1号至n号.对1<=i<=n的i来说,i号的左边是i ...
- noi.ac #525 神树的权值
mcfx神仙的题qwq 题目链接:戳我 首先,我们知道30%的分还是挺好做的 直接枚举根,然后dfs一遍以\(O(n)\)的时间复杂度求出来有多少神仙点 代码如下: #include<iostr ...
- NOI 2017滚粗退役记
NOI 2017 游记 又到了OIer退役了的季节 Day -1 今天是报到日. 中午11点多的动车.动车上和dick32165401和runzhe2000谈笑风生.顺便用dick32165401的流 ...
- 线性素数筛(欧拉筛)(超级好的MuBan)
Problem:找出小于等于n的所有素数的个数. #include <bits/stdc++.h> using namespace std; const int maxn = 1e6; i ...