简介

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了的更多相关文章

  1. [改变自己wordpress.2]至wordpress再加上简单的debug sql调试.

    或者说,同事. 需要帮助她打印出来sql 调试输出到页面sql 在这里,我们使用插件或一个的方式来启动配置文件wordpress的debug 在插件文件夹 wordpress/wp-content/p ...

  2. MonoBehaviour.print和Debug.Log是同样的作用

    MonoBehaviour.print("identical------------------------");

  3. PHP: How to print a debug log?

    file_put_contents('php://stderr', print_r("hello ", TRUE)); 转自: http://stackoverflow.com/q ...

  4. (数据科学学习手札127)在Python中使用icecream实现高效debug

    本文示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 尽管有那么多花里胡哨的debug工具和方式 ...

  5. Unity用GUI绘制Debug/print窗口/控制台-打包后测试

    Unity游戏视窗控制台输出 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享 ...

  6. Perl Print Win32 Console Windows 控制台 print Unicode 问题

    参考资料: https://stackoverflow.com/questions/15224400/perl-on-windows-problems-with-encoding https://te ...

  7. Maven之debug技巧

    mvn eclipse:clean eclipse:eclipse -Dwtpversion=2.0 可以将项目编译为web项目,然后再项目上右键debug as server即可.

  8. linux kernel driver debug

    1. print printk(): never pr_debug(): always good dev_dbg(): prefered when you have a struct device o ...

  9. print spooler 服务无法启动 打印机全部消失

    这往往是失败的打印任务导致的. 打开 C:\Windows\System32\spool\PRINTERS ,这个目录下的文件全是打印缓存,失败的任务也保存在这里.把这里的文件全部删除,然后再重新启动 ...

随机推荐

  1. 第十一章 前端开发-jQuery

    11.4.0 jQuery 11.4.1 基本知识 定义: jQuery是一个快速,小巧,功能丰富的JavaScript库 作用:它通过易于使用的API在大量浏览器中运行,使得HTML文档遍历和操作, ...

  2. [Javascirpt] What’s new in JavaScript (Google I/O ’19)

    Private variable in class: class Counter { #count = 0; // cannot be access publicly get value () { r ...

  3. Redis实战(18)Redis位图巧用,节约内存

    序言 资料 https://www.cnblogs.com/luke44/p/12031078.html

  4. 原创:实现atoi函数

    #include <stdio.h> #include <stdlib.h> #include <limits.h> int my_atoi(char *str) ...

  5. 技巧:在 C/C++中如何构造通用的对象链表[转]

    原文:技巧:在 C/C++中如何构造通用的对象链表 虚拟链表和类链表可以很好地实现这一点 您是否做过这样一个项目,它要求您在内存中保存数目不定的若干不同对象?对于某些情况,二叉树是最佳选择,但在通常情 ...

  6. jQuery属性操作之值操作

    值操作是对DOM属性value进行读取和设置操作. 比如html(). text(). val(). 1. html 1. 1 html()获取值 返回值:String 描述:获取集合中第一个匹配元素 ...

  7. Tishreen-CPC 2018 G. Colors Overflow(分块)

    Problem G. Colors Overflow Input file: standard input Output file: standard output Balloon Color: Da ...

  8. HDU 5810 Balls and Boxes ——(数学,概率,方差)

    官方题解看不太懂,参考了一些人的博客以后自己证明如下: 其中D(X)和E(X)的公式如下(参考自百度百科): 其中 p = 1 / m .(这是每一个单独事件发生的概率期望,在这里单独事件指的是一个球 ...

  9. Linux-expect脚本-编写一个expect脚本

    1.声明expect #!/usr/bin/expect -f 2.设置超时时间,获取参数 set ip [lindex $argv 0 ] //接收第一个参数,并设置IP set password ...

  10. python-numpy-1

    mean() mean() 函数定义: numpy.``mean(a, axis=None, dtype=None, out=None, keepdims=<class numpy._globa ...