原文转自:https://mp.weixin.qq.com/s/OtLr-cNethboMgmCcUx2pA

PySnooper 使用起来十分简单,开发者可以在任何庞大的代码库中使用它,而无需进行任何设置。你只需添加装饰器,并为日志输出地址指定路径,方法是将其路径指定为第一个参数。

目前,PySnooper在GitHub上已经获得7047个Star,371个Fork(GitHub地址:https://github.com/cool-RR/PySnooper)

示例

以下编写了一个函数,通过返回一个二进制列表。我们只需要通过添加@pysnooper.snoop()装饰器就可以了:

import pysnooper

@pysnooper.snoop()
def number_to_bits(number):
    if number:
        bits = []
        while number:
            number, remainder = divmod(number, 2)
            bits.insert(0, remainder)
        return bits
    else:
        return [0]

number_to_bits(6)

特性

stderr,则可以将选择输出到指定文件:

@pysnooper.snoop( /my/log/file.log )

查看一些非局部变量的变量值:

@pysnooper.snoop(variables=( foo.bar ,  self.whatever ))

显示函数调用的函数的snoop行:

@pysnooper.snoop(depth=2)

一个牛逼的 Python 调试工具PySnooper的更多相关文章

  1. 【项目总结】:怎样做一个牛逼的Team leader?

    随着ITOO高校云平台3.1项目的结束,我们各种各样的总结也被提上了日程. Java版本号的全部开发者和Donet版本号的全部开发者坐在一起进行了关于项目开发管理的头脑风暴,尽管我仅仅是Donet开发 ...

  2. 如何设计一个牛逼的API接口

    在日常开发中,总会接触到各种接口.前后端数据传输接口,第三方业务平台接口.一个平台的前后端数据传输接口一般都会在内网环境下通信,而且会使用安全框架,所以安全性可以得到很好的保护.这篇文章重点讨论一下提 ...

  3. csvkit---python一个牛逼到不行的csv处理库

    先吐槽一下:不管是百度还是谷歌,查来查去除了官方文档之外就没有任何可以借鉴的例子,虽然官方文档写的挺好的.但是我一直以为是在python语言的方式运行的,结果是以命令行的方式运行的,搞得我还以为这个库 ...

  4. Python 调试工具PySnooper

    相信很多小伙伴平时写python的时候都是需要调试程序的,出问题了,需要了解函数内部是怎么跑的,而这个时候很多人都会想到在疑惑的地方使用print函数来打印一下参数来调试.虽然用print也是不失为是 ...

  5. 牛逼!Python的判断、循环和各种表达式(长文系列第2篇

    流程控制是python语法很重要的一个分支,主要包括我们经常用到的判断语句.循环语句以及各种表达式,这也是上一篇文章没有介绍表达式的原因,在这篇文章中会更加系统全面的讲解这三方面的基础知识. 很多人学 ...

  6. 如何成为一个牛逼的C/C++程序员?

    这个题目的噱头太大,要真的写起来, 足够写一本书了. 本人是过来人, 结合自身的体会和大家交流一下,希望新人能少走弯路. 每个人的情况不一样,我下面的描述可能并不适合每一个看到这篇文章的人. 一.C/ ...

  7. 《转》如何成为一个牛逼的C/C++程序员?

    原地址:http://blog.csdn.net/langeldep/article/details/6333562 这个题目的噱头太大,要真的写起来, 足够写一本书了. 本人是过来人, 结合自身的体 ...

  8. PHP的一个牛逼的数组排序函数array_multisort

    函数详情,具体可参考 官方手册 array_multisort 实际问题是这样的,有这么一组数据: $arr_times = array( array('2018-04-12 04:25:00', 3 ...

  9. 教你做一个牛逼的DBA(在大数据下)

    一.基本概念 大数据量下,搞mysql,以下概念需要先达成一致 1)单库,不多说了,就是一个库 2)分片(sharding),水平拆分,用于解决扩展性问题,按天拆分表 3)复制(replication ...

随机推荐

  1. mysql分页和oracle分页

    1,mysql分页 select * from table_test LIMIT ((pageNum - 1) * pageSize),pageSize) 2,oracle分页 select * fr ...

  2. java 注解,动态代理

    秒懂,Java 注解 (Annotation)你可以这样学 深入理解Java注解类型(@Annotation) 注解可以理解为标签. 当开发者使用了Annotation 修饰了类.方法.Field 等 ...

  3. HTML5快速写页面的方法

    1 如果有原型的HTML页面(Axure导出来),可以在此从F12的“查看器”基础上拷贝到一个新文件,继续写代码. 2 利用EditPlus软件的工具 3 使用Dreamweaver CS5,可以直观 ...

  4. JS项目快速压缩(windows平台)

    问题 当下JS项目都有node_modules,从而项目文件多,容量大. 如何快速压缩一个JS项目? 方法 首先对JS项目安装生产环境的依赖npm install --production. 这时不要 ...

  5. centos6.9安装python3.6.9独立的virtualenv环境,并且能正确引入ssl

    centos6.9安装python3.6.9独立的virtualenv环境,并且能正确引入ssl 1.编译安装python3.6环境# 安装依赖yum -y install zlib-devel bz ...

  6. 浅入深出ETCD之【集群部署与golang客户端使用】

    前言 之前说了etcd的简介,命令行使用,一些基本原理.这次来说说现实一点的集群部署和golang版本的客户端使用.因为在实际使用过程中,etcd的节点肯定是需要2N+1个进行部署的,所以有必要说明一 ...

  7. 复制centos 后不能上网,处理办法

    CentOS7 Failed to start LSB: Bring up/down解决方法 https://blog.51cto.com/addam/1839518 刚刚装好的虚拟机突然不能上网了, ...

  8. 一次升级jar包遇到的空指针异常

    今天自己在升级公司的一个jar后,一直报空指针异常.代码如下 package com.zhuanche.http; import com.alibaba.fastjson.JSON; import c ...

  9. jQuery prop方法替代attr方法

    jquery attr()方法获取标签的 checked 会有问题,所以用了 prop() 方法.

  10. cube-ui按钮配合toast单例模式应用

    <template> <div> <cube-button icon="cubeic-right" @click="goNext" ...