一个牛逼的 Python 调试工具PySnooper
原文转自: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的更多相关文章
- 【项目总结】:怎样做一个牛逼的Team leader?
随着ITOO高校云平台3.1项目的结束,我们各种各样的总结也被提上了日程. Java版本号的全部开发者和Donet版本号的全部开发者坐在一起进行了关于项目开发管理的头脑风暴,尽管我仅仅是Donet开发 ...
- 如何设计一个牛逼的API接口
在日常开发中,总会接触到各种接口.前后端数据传输接口,第三方业务平台接口.一个平台的前后端数据传输接口一般都会在内网环境下通信,而且会使用安全框架,所以安全性可以得到很好的保护.这篇文章重点讨论一下提 ...
- csvkit---python一个牛逼到不行的csv处理库
先吐槽一下:不管是百度还是谷歌,查来查去除了官方文档之外就没有任何可以借鉴的例子,虽然官方文档写的挺好的.但是我一直以为是在python语言的方式运行的,结果是以命令行的方式运行的,搞得我还以为这个库 ...
- Python 调试工具PySnooper
相信很多小伙伴平时写python的时候都是需要调试程序的,出问题了,需要了解函数内部是怎么跑的,而这个时候很多人都会想到在疑惑的地方使用print函数来打印一下参数来调试.虽然用print也是不失为是 ...
- 牛逼!Python的判断、循环和各种表达式(长文系列第2篇
流程控制是python语法很重要的一个分支,主要包括我们经常用到的判断语句.循环语句以及各种表达式,这也是上一篇文章没有介绍表达式的原因,在这篇文章中会更加系统全面的讲解这三方面的基础知识. 很多人学 ...
- 如何成为一个牛逼的C/C++程序员?
这个题目的噱头太大,要真的写起来, 足够写一本书了. 本人是过来人, 结合自身的体会和大家交流一下,希望新人能少走弯路. 每个人的情况不一样,我下面的描述可能并不适合每一个看到这篇文章的人. 一.C/ ...
- 《转》如何成为一个牛逼的C/C++程序员?
原地址:http://blog.csdn.net/langeldep/article/details/6333562 这个题目的噱头太大,要真的写起来, 足够写一本书了. 本人是过来人, 结合自身的体 ...
- PHP的一个牛逼的数组排序函数array_multisort
函数详情,具体可参考 官方手册 array_multisort 实际问题是这样的,有这么一组数据: $arr_times = array( array('2018-04-12 04:25:00', 3 ...
- 教你做一个牛逼的DBA(在大数据下)
一.基本概念 大数据量下,搞mysql,以下概念需要先达成一致 1)单库,不多说了,就是一个库 2)分片(sharding),水平拆分,用于解决扩展性问题,按天拆分表 3)复制(replication ...
随机推荐
- mysql分页和oracle分页
1,mysql分页 select * from table_test LIMIT ((pageNum - 1) * pageSize),pageSize) 2,oracle分页 select * fr ...
- java 注解,动态代理
秒懂,Java 注解 (Annotation)你可以这样学 深入理解Java注解类型(@Annotation) 注解可以理解为标签. 当开发者使用了Annotation 修饰了类.方法.Field 等 ...
- HTML5快速写页面的方法
1 如果有原型的HTML页面(Axure导出来),可以在此从F12的“查看器”基础上拷贝到一个新文件,继续写代码. 2 利用EditPlus软件的工具 3 使用Dreamweaver CS5,可以直观 ...
- JS项目快速压缩(windows平台)
问题 当下JS项目都有node_modules,从而项目文件多,容量大. 如何快速压缩一个JS项目? 方法 首先对JS项目安装生产环境的依赖npm install --production. 这时不要 ...
- centos6.9安装python3.6.9独立的virtualenv环境,并且能正确引入ssl
centos6.9安装python3.6.9独立的virtualenv环境,并且能正确引入ssl 1.编译安装python3.6环境# 安装依赖yum -y install zlib-devel bz ...
- 浅入深出ETCD之【集群部署与golang客户端使用】
前言 之前说了etcd的简介,命令行使用,一些基本原理.这次来说说现实一点的集群部署和golang版本的客户端使用.因为在实际使用过程中,etcd的节点肯定是需要2N+1个进行部署的,所以有必要说明一 ...
- 复制centos 后不能上网,处理办法
CentOS7 Failed to start LSB: Bring up/down解决方法 https://blog.51cto.com/addam/1839518 刚刚装好的虚拟机突然不能上网了, ...
- 一次升级jar包遇到的空指针异常
今天自己在升级公司的一个jar后,一直报空指针异常.代码如下 package com.zhuanche.http; import com.alibaba.fastjson.JSON; import c ...
- jQuery prop方法替代attr方法
jquery attr()方法获取标签的 checked 会有问题,所以用了 prop() 方法.
- cube-ui按钮配合toast单例模式应用
<template> <div> <cube-button icon="cubeic-right" @click="goNext" ...