Python模块之pysnooper
一、简介
调试程序时,很多人喜欢直接用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的更多相关文章
- 使用C/C++写Python模块
最近看开源项目时学习了一下用C/C++写python模块,顺便把学习进行一下总结,废话少说直接开始: 环境:windows.python2.78.VS2010或MingW 1 创建VC工程 (1) 打 ...
- Python模块之configpraser
Python模块之configpraser 一. configpraser简介 用于处理特定格式的文件,其本质还是利用open来操作文件. 配置文件的格式: 使用"[]"内包含 ...
- Python模块之"prettytable"
Python模块之"prettytable" 摘要: Python通过prettytable模块可以将输出内容如表格方式整齐的输出.(对于用Python操作数据库会经常用到) 1. ...
- python 学习第五天,python模块
一,Python的模块导入 1,在写python的模块导入之前,先来讲一些Python中的概念性的问题 (1)模块:用来从逻辑上组织Python代码(变量,函数,类,逻辑:实现一个功能),本质是.py ...
- windows下安装python模块
如何在windows下安装python模块 1. 官网下载安装包,比如(pip : https://pypi.python.org/pypi/pip#downloads) pip-9.0.1.tar. ...
- 安装第三方Python模块,增加InfoPi的健壮性
这3个第三方Python模块是可选的,不安装的话InfoPi也可以运行. 但是如果安装了,会增加InfoPi的健壮性. 目录 1.cchardet 自动检测文本编码 2.lxml 用于解析 ...
- Python基础篇【第5篇】: Python模块基础(一)
模块 简介 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就 ...
- python 模块加载
python 模块加载 本文主要介绍python模块加载的过程. module的组成 所有的module都是由对象和对象之间的关系组成. type和object python中所有的东西都是对象,分为 ...
- pycharm安装python模块
这个工具真的好好,真的很喜欢,它很方便,很漂亮,各种好 pycharm安装python模块:file-setting-搜索project inte OK
随机推荐
- Python-入门学习
开始学习Python(围绕windows 平台上),记录一些点滴的知识点,也希望可以和大家交流分享. ================================================= ...
- ASP.NET 前端数据绑定---<%#%>及Eval()的使用
ASP.NET 前端html代码中会经常出现的<%%>的代码,里面的文本其实就是不能直接输出到客户端浏览器的文本,是需要服务器解释的. 在ASP中,<%%>里面的文本是vbsc ...
- 最好的导航分割栏,分割线,实现底部透明,纯css
<div class="Ui_Ct_Line padding_5"> <div>为您推荐</div> </div> .Ui_Ct_L ...
- 最全面阐述WebDataBinder理解Spring的数据绑定
每篇一句 不要总问低级的问题,这样的人要么懒,不愿意上网搜索,要么笨,一点独立思考的能力都没有 相关阅读 [小家Spring]聊聊Spring中的数据绑定 --- DataBinder本尊(源码分析) ...
- UVA1103 古代象形符号 Ancient Messages 题解
题目链接: https://www.luogu.org/problemnew/show/UVA1103 题目分析: 我们可以先进行矩阵的还原 for(int k=1;k<=4;k++) { a[ ...
- 关于ftp响应码的分析【转载】
转载地址: http://www.jb51.net/article/26649.htm 1开头-成功 2开头-成功 3开头-权限问题 4开头-文件问题 5开头-服务器问题 150 FILE: %s 1 ...
- python 2.7 - 3.5 升级之路 (二) : 语法与类库升级
背景 在上一篇博文中,我们为升级python 2 -> 3已经做了一些准备.在这篇中,我们将针对语法与类库这两个方面进行讨论. 关于语法 1. print 在python3中, print 已经 ...
- Flutter学习笔记(11)--文本组件、图标及按钮组件
如需转载,请注明出处:Flutter学习笔记(10)--容器组件.图片组件 文本组件 文本组件(text)负责显示文本和定义显示样式,下表为text常见属性 Text组件属性及描述 属性名 类型 默认 ...
- Shiro权限管理框架(一):Shiro的基本使用
首发地址:https://www.guitu18.com/post/2019/07/26/43.html 核心概念 Apache Shiro是一个强大且易用的Java安全框架,执行身份验证.授权.密码 ...
- linuk下proftpd安装
Linux下Proftpd安装与配置 1.下载 下载地址:ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.6rc1.tar.gz 文件下载到/soft ...