PySnooper 在 GitHub 上自嘲是一个“乞丐版”调试工具(poor man's debugger)。
一般情况下,在编写 Python 代码时,如果想弄清楚为什么 Python 代码没有按照预期执行、哪些代码在运行哪些没在运行、局部变量又是什么,我们会使用包含断点和观察模式等功能的调试器,或者直接使用 print 语句打印出来。
但上面的方法都比较麻烦,例如使用调试器需要进行繁琐的设置,使用 print 打印也要很仔细。与它们相比,使用 PySnooper 只需为要调试的函数添加一个装饰器即可,这样就能获得运行函数详细的 log,包括执行的代码行和执行时间,以及局部变量发生变化的确切时间。
之所以称为“乞丐版”,相信是因为 PySnooper 使用起来十分简单,开发者可以在任何庞大的代码库中使用它,而无需进行任何设置。只需添加装饰器,并为日志输出地址指定路径。
示例
下面的代码写了一个函数将传入的值转换为二进制码,并返回一个二进制列表。要使用 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)
输出如下
Starting var:.. number = 6
21:14:32.099769 call 3 @pysnooper.snoop()
21:14:32.099769 line 5 if number:
21:14:32.099769 line 6 bits = []
New var:....... bits = []
21:14:32.099769 line 7 while number:
21:14:32.099769 line 8 number, remainder = divmod(number, 2)
New var:....... remainder = 0
Modified var:.. number = 3
21:14:32.099769 line 9 bits.insert(0, remainder)
Modified var:.. bits = [0]
21:14:32.099769 line 7 while number:
21:14:32.099769 line 8 number, remainder = divmod(number, 2)
Modified var:.. number = 1
Modified var:.. remainder = 1
21:14:32.099769 line 9 bits.insert(0, remainder)
Modified var:.. bits = [1, 0]
21:14:32.099769 line 7 while number:
21:14:32.099769 line 8 number, remainder = divmod(number, 2)
Modified var:.. number = 0
21:14:32.099769 line 9 bits.insert(0, remainder)
Modified var:.. bits = [1, 1, 0]
21:14:32.099769 line 7 while number:
21:14:32.099769 line 10 return bits
21:14:32.099769 return 10 return bits
安装
使用 pip 进行安装
pip install pysnooper
软件简介 PySnooper 在 GitHub 上自嘲是一个“乞丐版”调试工具(poor man’s debugger)。 一般情况下,在编写 Python 代码时,如果想弄清楚为什么 Python 代码没有按照预期执行、哪些代码在运行哪些没在运行、局部变量又是什么,我们会使用包含断点和观察模式等功能的调试器,或者直接使用 print 语句打印出来。 但上面的方法都比较麻烦,例如使用调试器需要进行
本文达内小编想和大家分享一个“贫民版”调试工具——PySnooper,你有兴趣吗? PySnooper允许你执行以上相同的操作,只需为要调试的函数添加一个装饰器即可,而不需要构建正确的 print 打印。你还将得到函数的详细日志,包括运行了哪些代码行、何时运行以及何时更改了局部变量。 PySnooper 使用起来十分简单,开发者可以在任何庞大的代码库中使用它,而无需进行任何设置。你只需添加装饰器,
0 前言 >>返回Python系列文章目录<< 1 pysnooper模块(第三方库) Pysnooper 是一款大受欢迎的Debug模块,pysnooper模块比print更方便,以装饰器的形式存在,安装方式为: pip install pysnooper 使用方式为: import pysnooper @pysnooper.snoop(output=, watch=, prefix=, c
Github: https://github.com/cool-RR/PySnooper 安装 $ pip install pysnooper 带有 conda-forge 通道的 Conda: $ conda install -c conda-forge pysnooper Arch Linux: $ yay -S python-pysnooper Fedora Linux: $ dnf
《[全]使用PySnooper调试代码》由会员分享,可在线阅读,更多相关《[全]使用PySnooper调试代码(12页珍藏版)》请在人人文库网上搜索。 1、使用 PySnooper 调试代码1. 快速安装执行下面这些命令进行安装 PySnooper$ python3 -m pip install pysnooper# 或者$ conda install -c conda-forge pysnoop
安装 pip install pysnooper 定义1个函数,查看调试 import pysnooper @pysnooper.snoop() # 调试装饰器 def fun1(a): a += 1 a += 2 return a fun1(0) C:\Python38\python.exe C:/test.py Source path:... C:/te
相信很多小伙伴平时写python的时候都是需要调试程序的,出问题了,需要了解函数内部是怎么跑的,而这个时候很多人都会想到在疑惑的地方使用print函数来打印一下参数来调试。虽然用print也是不失为是一种方法,但是有时如果疑惑的地方多就要每个地方都要加print,这样就显得比较麻烦了。 今天发现在Github开源了一个神器,可以清楚让你清楚了解函数内部的运行以及参数值的变化,PySnooper,项
PySnooper 是一个非常方便的调试器。如果您正在试图弄清楚为什么您的Python代码没有按照您的预期去做,您会希望使用具有断点和监视功能的成熟Debug工具,但是许多Debug工具配置起来非常麻烦。 现在,有了PySnooper,您并不需要配置那么复杂的Debug工具,就能够完成对整个代码的分析。它能告诉您哪些代码正在运行,以及局部变量的值是什么。 其实,PySnooper 就是替代了一行一
前言 这次又开了个新坑——GitHub探索,主要内容是试水当期GitHub上较火的repo 虽然top榜上各路新手教程跟经典老不死项目占据了大半江山,但清流总是会有的。 第一期就试水一下pysnooper吧,一个新奇实用的python调试器。 顺便源码分析一波,了解下python的debug操作。 废话不多说,进入正题~ pysnooper使用效果 通常,我们可以在函数上用pysnooper.sn
本文向大家介绍Windows下安装配置Ruby的debug工具ruby-debug-base19,包括了Windows下安装配置Ruby的debug工具ruby-debug-base19的使用技巧和注意事项,需要的朋友参考一下 gem使用代理的两种方式: 方式一: 方式二: 安装ruby-debug-base19 有2种方法: 方法一: 先下载.gem文件,然后直接安装.gem文件,这种需要编
自动化所有测试流程并对其进行配置以实现速度和灵活性至关重要。此过程称为DevOps自动化。 维护庞大的IT基础架构的大型DevOps团队面临的困难可以简要分为六个不同的类别。 基建自动化 配置管理 部署自动化 绩效管理 日志管理 监测 下面我们来看看每个类别中的一些工具以及它们如何解决痛点 - 1. 基建自动化 亚马逊网络服务(AWS):作为云服务,无需实际存在于数据中心。此外,它们易于按需扩展。
数据库自动更新及自动赋值工具。代码包里面包括: 一、模型类及数据库配置文件生成器(C#程序,数据库暂时只支持sqlserver,请在Windows上使用) ,具体功能有: 1.生成OC模型类 2.生成C#模型类 3.生成数据库配置文件 二、IOS客户端功能(示例代码travelAPP): 1、通过数据库配置文件生成或更新客户端Sqlite数据库的表结构 2、NSDictionary数据自动赋值给模
Attribute Name Type Required Default Description output string No html output type, html or javascript 属性 类型 是否必须 缺省值 描述 output string No html 输出类型,html或javascript {debug} dumps the debug console to t
The debug component enables component-to-DOM serialization. Example < a-scene debug> </ a-scene> Com
在本章中,我们将研究Joomla中的Debug 。 通过启用调试模式,它有助于解决Joomla的各种问题。 它显示了Joomla如何呈现会话数据,配置文件信息,内存使用和数据库查询的详细信息。 Joomla调试 以下是用于设置Joomla调试的简单步骤。 Step (1) - 进入System → Global Configuration ,如下面的屏幕所示。 接下来,单击Joomla Globa
Debug 输入sql语句,但不执行debug() Return: 开启Medoo调试模式 输出sql语句,不需要使用echo或其它方法。调试完成请移除此代码 $database->debug()->select("bccount", [ "user_name", "email"], [ "user_id[ 20]);// Will output:// SELECT "user_
Debug 输入sql语句,但不执行debug() Return: 开启Medoo调试模式 输出sql语句,不需要使用echo或其它方法。调试完成请移除此代码 $database->debug()->select("bccount", [ "user_name", "email"], [ "user_id[ 20]);// Will output:// SELECT "user_