一、简介

调试程序时,很多人喜欢直接用print来代替断点调试,而pysnooper模块比print更方便,以装饰器的形式存在

二、实验环境

  操作系统:win10

  python版本:python3.6

三、安装pysnooper模块

  pip3 install pysnooper

四、简单实例

  需求:屏幕打印每个变量的值

import pysnooper

@pysnooper.snoop()
def test():
a = 100*1
sum=0
for i in range(10):
sum +=i
sum2 = sum +a
return sum2 if __name__ == '__main__':
test()

  结果输出:

17:07:38.982924 call         4 def test():
17:07:38.982924 line 5 a = 100*1
New var:....... a = 100
17:07:38.982924 line 6 sum=0
New var:....... sum = 0
17:07:38.982924 line 7 for i in range(10):
New var:....... i = 0
17:07:38.982924 line 8 sum +=i
17:07:38.982924 line 7 for i in range(10):
Modified var:.. i = 1
17:07:38.982924 line 8 sum +=i
Modified var:.. sum = 1
17:07:38.983889 line 7 for i in range(10):
Modified var:.. i = 2
17:07:38.983889 line 8 sum +=i
Modified var:.. sum = 3
17:07:38.983889 line 7 for i in range(10):
Modified var:.. i = 3
17:07:38.983889 line 8 sum +=i
Modified var:.. sum = 6
17:07:38.983889 line 7 for i in range(10):
Modified var:.. i = 4
17:07:38.983889 line 8 sum +=i
Modified var:.. sum = 10
17:07:38.983889 line 7 for i in range(10):
Modified var:.. i = 5
17:07:38.983889 line 8 sum +=i
Modified var:.. sum = 15
17:07:38.983889 line 7 for i in range(10):
Modified var:.. i = 6
17:07:38.983889 line 8 sum +=i
Modified var:.. sum = 21
17:07:38.983889 line 7 for i in range(10):
Modified var:.. i = 7
17:07:38.983889 line 8 sum +=i
Modified var:.. sum = 28
17:07:38.983889 line 7 for i in range(10):
Modified var:.. i = 8
17:07:38.983889 line 8 sum +=i
Modified var:.. sum = 36
17:07:38.983889 line 7 for i in range(10):
Modified var:.. i = 9
17:07:38.983889 line 8 sum +=i
Modified var:.. sum = 45
17:07:38.983889 line 7 for i in range(10):
17:07:38.983889 line 9 sum2 = sum +a
New var:....... sum2 = 145
17:07:38.983889 line 10 return sum2
17:07:38.983889 return 10 return sum2
Return value:.. 145

结果

五、pysnooper.snoop传参介绍

output='a.txt'        #将结果保存到文件a.txt
variables=('a') #打印非局部变量a的值
depth=1 #Show snoop lines for functions that your function calls
prefix='hello' #在每一行打印信息前添加hello

Python模块之pysnooper的更多相关文章

  1. 使用C/C++写Python模块

    最近看开源项目时学习了一下用C/C++写python模块,顺便把学习进行一下总结,废话少说直接开始: 环境:windows.python2.78.VS2010或MingW 1 创建VC工程 (1) 打 ...

  2. Python模块之configpraser

    Python模块之configpraser   一. configpraser简介 用于处理特定格式的文件,其本质还是利用open来操作文件. 配置文件的格式: 使用"[]"内包含 ...

  3. Python模块之"prettytable"

    Python模块之"prettytable" 摘要: Python通过prettytable模块可以将输出内容如表格方式整齐的输出.(对于用Python操作数据库会经常用到) 1. ...

  4. python 学习第五天,python模块

    一,Python的模块导入 1,在写python的模块导入之前,先来讲一些Python中的概念性的问题 (1)模块:用来从逻辑上组织Python代码(变量,函数,类,逻辑:实现一个功能),本质是.py ...

  5. windows下安装python模块

    如何在windows下安装python模块 1. 官网下载安装包,比如(pip : https://pypi.python.org/pypi/pip#downloads) pip-9.0.1.tar. ...

  6. 安装第三方Python模块,增加InfoPi的健壮性

    这3个第三方Python模块是可选的,不安装的话InfoPi也可以运行. 但是如果安装了,会增加InfoPi的健壮性. 目录 1.cchardet    自动检测文本编码 2.lxml    用于解析 ...

  7. Python基础篇【第5篇】: Python模块基础(一)

    模块 简介 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就 ...

  8. python 模块加载

    python 模块加载 本文主要介绍python模块加载的过程. module的组成 所有的module都是由对象和对象之间的关系组成. type和object python中所有的东西都是对象,分为 ...

  9. pycharm安装python模块

    这个工具真的好好,真的很喜欢,它很方便,很漂亮,各种好 pycharm安装python模块:file-setting-搜索project inte OK

随机推荐

  1. ThreadGroup详细讲解

    import java.util.concurrent.TimeUnit; public class Test { public static void main(String[] args){ // ...

  2. 数据库系统概念:JDBC

    import java.sql.*; public class DataBase { public static void main() { } } /* 5.1.1 JDBC */ class JD ...

  3. 【题解】P1396 营救-C++

    原题传送门 这道题目基本就是一个克鲁斯卡尔最小生成树的模板题,唯一不同的是,这道题目的最终目标不是所有点相连,而是只要s和t相连就可以了.还有就是这道题目求的是最小生成树中的最大边权值.但是,克鲁斯卡 ...

  4. pycharm install python packaging tools时遇到AttributeError: '_NamespacePath' object has no attribute 'sort'错误

    pycharm install python packaging tools时报错AttributeError: '_NamespacePath' object has no attribute 's ...

  5. weblogic安装时检查监视器: 必须配置为至少显示 256 种颜色,实际空间未知→失败

    1.首先如果你出现的结果是[未通过],则设置DISPLAY环境变量. 按网上方法:export DISPLAY=:0.0 然后继续安装你的东西……若成功则恭喜你~ 若[失败],按网上方法让你去看日志 ...

  6. MySQL5.7.20源码安装以及pt-query-digest用法示例

    MySQL5.7.20源码安装1.下载解压cd /data/app/mysql5.7wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5 ...

  7. Android 常用 Manager的总结

    Android 常用 Manager的总结 1 smsManager    发送短信 --使用方法         --SmsManager smsManager = SmsManager.getDe ...

  8. RDB和AOF的区别

    redis的持久化方式RDB和AOF的区别   1.前言 最近在项目中使用到Redis做缓存,方便多个业务进程之间共享数据.由于Redis的数据都存放在内存中,如果没有配置持久化,redis重启后数据 ...

  9. Java 集合框架部分面试题

    1.Java集合框架是什么?说出一些集合框架的优点? 每种编程语言中都有集合,最初的Java版本包含几种集合类:Vector.Stack.HashTable和Array.随着集合的广泛使用,Java1 ...

  10. linux初学者-系统日志(二)

    linux初学者-系统日志(二) 先前在(一)中介绍到在不同主机间日志同步的方法,在一台主机上可以看到另一台主机的日志.这里会介绍系统日志方面的一些其他内容. 1.日志的采集格式 在日志的采集中,由图 ...