debug调试神器pysnooper

2023-11-17

       异常bug定位,print()函数也可以,但效率上还是慢,后来发现了一个叫PySnooper的装饰器。一般debug调试,都是在我们可能觉得会有问题的地方,去打印输出,看下实际输出了什么,然后思考问题所在。

下载库:

pip install pysnooper

       但是pysnooper很方便,运行代码就会输出对应函数的执行数据,并且函数每一步的输出都保存为debug_file.log,我们可以直接去看到底哪里出了问题。

import pysnooper

@pysnooper.snoop('./debug_feil.log')
def nu_to(number):
    list1 = []
    for i in range(number):
        if i%2==0:
            list1.insert(0, i)
        else:
            pass
    return list1

nu_to(6)

Starting var:.. number = 6
09:54:45.310977 call         2 def nu_to(number):
09:54:45.310977 line         3     list1 = []
New var:....... list1 = []
09:54:45.312009 line         4     for i in range(number):
New var:....... i = 0
09:54:45.313003 line         5         if i%2==0:
09:54:45.313003 line         6             list1.insert(0, i)
Modified var:.. list1 = [0]
09:54:45.313003 line         4     for i in range(number):
Modified var:.. i = 1
09:54:45.313967 line         5         if i%2==0:
09:54:45.313967 line         4     for i in range(number):
Modified var:.. i = 2
09:54:45.314990 line         5         if i%2==0:
09:54:45.314990 line         6             list1.insert(0, i)
Modified var:.. list1 = [2, 0]
09:54:45.316959 line         4     for i in range(number):
Modified var:.. i = 3
09:54:45.317956 line         5         if i%2==0:
09:54:45.317956 line         4     for i in range(number):
Modified var:.. i = 4
09:54:45.318954 line         5         if i%2==0:
09:54:45.318954 line         6             list1.insert(0, i)
Modified var:.. list1 = [4, 2, 0]
09:54:45.318954 line         4     for i in range(number):
Modified var:.. i = 5
09:54:45.319952 line         5         if i%2==0:
09:54:45.319952 line         4     for i in range(number):
09:54:45.320950 line         9     return list1
09:54:45.320950 return       9     return list1
Return value:.. [4, 2, 0]
 

 

文章未经博主同意,禁止转载!

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

debug调试神器pysnooper 的相关文章

随机推荐

  • 对虚拟机原有磁盘扩容

    对虚拟机原有磁盘扩容 扩容不会导致数据丢失 1 先关闭虚拟机 手动去虚拟机的硬盘扩容 2 lsblk df h查看磁盘容量 3 fdisk dev sda命令扩展 输入P查看分区的start和end的值 需要先删除要扩容的分区 输入d 选择
  • 转:使用DOS命令chcp查看windows操作系统的默认编码以及编码和语言的对应关系

    代码页是字符集编码的别名 也有人称 内码表 早期 代码页是IBM称呼电脑BIOS本身支持的字符集编码的名称 当时通用的操作系统都是命令行界面系统 这些操作系统直接使用BIOS供应的VGA功能来显示字符 操作系统的编码支持也就依靠BIOS的编
  • 微信小程序绘制二维码

    一 前言 在日常的小程序项目中 会经常遇到需要动态绘制二维码的需求 使用场景很多 例如绘制在海报上 例如制作票务码 核销码等等 这篇文章是应一位好友的需求而写的 也希望能够给有需要的同学一些帮助 二 实现原理 使用微信小程序的canvas组
  • STM32的低功耗模式

    目前的低功耗设计主要从芯片设计和系统设计两个方面考虑 随着半导体工艺的飞速发展和芯片工作频率的提高 芯片的功耗迅速增加 而功耗增加又将导致芯片发热量的增大和可靠性的下降 因此 功耗已经成为深亚微米集成电路设计中的一个重要考虑因素 为了使产品
  • HTML、CSS制作小米商城网页首页源码解析

    简介 这是我学习前端以来仿写的第一个项目 沿着尚硅谷李立超老师的教学视频学习 在仿写这个项目的过程中即巩固了这两周以来的知识 也增加了一些小经验 主要是老师传授 同时也让自己更加有信心学习下去 相信自己一定会实现自己的小梦想 加油 小米官网
  • [运算放大器系列]二、电压转4 - 20MA电流电路分析

    运算放大器系列 二 电压转4 20MA电流电路分析 1 电路原理图 2 原理分析 1 电路原理图 偶然在网上看到一个4 20MA转换电路原理图如下 2 原理分析 R L R L RL 为负载 分析电流流向如上图箭头所示可以得到 假设Rloo
  • Elasticsearch 6.1 TransportClient实现多条件重排序搜索查询之FilterFunctionBuilder和FunctionScoreQueryBuilder

    搜索条件 在Index为10000下查找标题包含 IPhone 优先取 品牌手机 这个分类 销量越高越前 结果随机给用户展示 JAVA 代码实现片段 String searchContent IPhone TransportClient c
  • UI测试和接口测试

    安全测试是我下个阶段的主学习了 UI测试和接口测试 安全和性能调优 和测试相关的一些专业术语 测试的发展方向大体是4种 接口自动化测试 UI自动化测试 持续集成 和测试相关的一些专业术语 QA quality assurance 质量保证
  • 调试远程tomcat服务器

    1 关闭linux下防火墙 不然远程客户机可能无法连接上该tomcat 注意不直接关闭防火墙 而是将远程客户机与端口添加到防火墙上 关闭主要是最简单 service iptables stop 2 启动tomcat 命令行下运行 catal
  • ML Impossible and Rescure

    No Rule to Define will cause conflict Using available data to estimate target function if without rule target is unknown
  • PageHelper的概述和基本使用

    PageHelper介绍 PageHelper是国内非常优秀的一款开源的mybatis分页插件 它支持基本主流与常用的数据库 例如mysql oracle mariaDB DB2 SQLite Hsqldb等 本项目在 github 的项目
  • 线与逻辑详解

    什么是线与逻辑 需要和CMOS漏极开路门 Open Drain OD 一起介绍 通常CMOS门电路都有反相器作为输出缓冲电路 而在工程实践中 有时需要将两个门的输出端并联以实现 与 逻辑的功能称为 线与 逻辑 或者用于驱动大电流负载 或者实
  • 第一章 webpack与构建发展简史

    官方loader和插件 Loaders webpack Plugins webpack 为什么需要构建工具 初识webpack webpack默认配置文件 webpack config js 可以通过webpack config
  • 数据结构-图的创建(邻接矩阵,邻接表)C语言实现

    图的定义 图 Graph G由两个集合V和E组成 记为 G V E 其中V是顶点的有穷非空集合 其实就是顶点 E是V中顶点偶对的有穷集合 就是边 V G 和E G 通常分别表示图G的顶点集合以及边集合 E G 可以为空集合 但是此时的图只有
  • 502 Bad Gateway The proxy server received an invalid response from an upstream server

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 打开网站一直报错 查看了一下nginx错误日志 发现很多的报错 2018 12 24 11 02 51 alert 20026 20026 33113943 socket
  • 【渗透测试笔记】之【内网渗透——Windows系统散列值获取与防范】

    拓扑图 Windows系统散列值获取 1 通过CS模块获取用户凭证信息 在获取到目标主机权限后 我们可以抓取hash和dump明文密码 这两项功能都需要管理员权限 如果权限不足 先要进行提权操作 抓取密码哈希 右键被控主机 gt Acces
  • 【OpenCV学习笔记】【教程翻译】五 (车牌识别之OCR分割)

    车牌识别 车牌识别的第二步主要是提取出车牌中的字符 对于每个被检测出的车牌 我们对车牌进行分割获取每个字符 然后用神经网络机器学习算法实现字符的识别 在这个过程中 我们也可以学习到如何评估一个分类算法 OCR分割 首先 我们将车牌图像作为具
  • sqli-labs 21——40关攻略

    Less 21 基于错误的复杂的字符型Cookie注入 base64编码 单引号 报错型 cookie型注入 本关和less 20相似 只是cookie的uname值经过base64编码了 登录后页面 圈出来的地方显然是base64加密过的
  • 浅谈Linux的文件系统, 新增XFS.Ext3.GFS.ReiserFS.JFS相关知识

    如果您是一位新手 也许 您还不知道如何把文件从Windows拷贝到 Linux上吧 下面 我们将说明Unix文件系统以及mount的工作过程 然后再比较详细地讨论 mount的使用和有关选项 如果您已经了解Unix文件系统是如何工作的 那么
  • debug调试神器pysnooper

    异常bug定位 print 函数也可以 但效率上还是慢 后来发现了一个叫PySnooper的装饰器 一般debug调试 都是在我们可能觉得会有问题的地方 去打印输出 看下实际输出了什么 然后思考问题所在 下载库 pip install py