当前位置: 首页 > article >正文

Python3,自从掌握了这个方法,再也不用print进行调试了。

PySnooper妙用

  • 1、引言
  • 2、代码实战
    • 2.1 介绍
    • 2.2 安装
    • 2.3 示例
  • 3、总结

1、引言

小屌丝:鱼哥,调试代码,除了Debug,还有什么其他的神器没?
小鱼:额… 你这是要飞天吗?
小屌丝:我很低调的好不好。
小鱼:还说低调,那你Debug咋都不用,还说低调?
小屌丝:我觉得Debug太慢了,
小鱼:…被你装到了。
小屌丝:反正我不管, 就得帮我想个神器…
小鱼:… 好吧, 容我想一下。
在这里插入图片描述

小鱼:你别说,我还真的想到一个。
小屌丝:我擦…被你装到了, 我就知道你有货。
小鱼:低调, 我很低调的好不。
小屌丝:好吧,那你向我展示一下你说的神器。
小鱼:嘿嘿…

在这里插入图片描述

2、代码实战

2.1 介绍

今天说到的这个神器,就是PySnooper,它的工作原理很简单,就是替代print的工作。
我们都知道, print一行, 则输出一行。
而PySnooper的功能就是把所有的一起输出。

2.2 安装

涉及到第三方库,肯定就需要安装
老规矩,pip 安装

pip install pysnooper

然后就是等待着安装。

其它安装方式,直接看这两篇:

  • Python3,选择Python自动安装第三方库,从此跟pip说拜拜!!
  • Python3:我低调的只用一行代码,就导入Python所有库!

安装完成,就是这样
在这里插入图片描述

2.3 示例

代码示例

# -*- coding:utf-8 -*-
# @Time   : 2023-03-28
# @Author : Carl_DJ

'''
实现功能:
    使用PySnooper与with的上下文形式调试
'''

import pysnooper
import random

def Demo():
	#设置list
    list = []
    for i in range(10):
        list.append(random.randrange(1,1000))
	#使用with进行上下文调试
    with pysnooper.snoop():
        lower = min(list)
        upper = max(list)
        mid = (lower + upper) / 2

        print(lower,mid,upper)

#调用demo
if __name__ == '__main__':
    Demo()

运行结果

21 458.0 895
Source path:... D:\Project\TestPySnooper.py
New var:....... list = [438, 414, 895, 834, 890, 464, 21, 536, 290, 85]
New var:....... i = 9
15:14:58.320034 line        19         lower = min(list)
New var:....... lower = 21
15:14:58.320540 line        20         upper = max(list)
New var:....... upper = 895
15:14:58.320540 line        21         mid = (lower + upper) / 2
New var:....... mid = 458.0
15:14:58.320540 line        23         print(lower,mid,upper)
Elapsed time: 00:00:00.000506

Process finished with exit code 0

3、总结

看到这里,今天的分享内容就到这里了。
其实在实际工作中, 使用上下文调试的场景也很常见。
所以,学会使用PySnooper的with进行上下文调试, 能帮助你节省很多工作量。

好了,就唠叨这里了。
我是小鱼

  • CSDN 博客专家
  • 阿里云 专家博主
  • 51CTO博客专家
  • 51认证讲师
  • 金牌面试官

关注小鱼,带你学习更多更有趣的python知识。

当然,

  • 如果你想晋升自己的技能,;
  • 如果你想提升自己的面试成功率;
  • 如果你现在处在职业迷茫期,想重新规划职业生涯;

都可以找小鱼聊聊的。

CSDN 私信留言, 或者扫描小鱼主页的二维码,都可以找到的。


http://www.kler.cn/a/5153.html

相关文章:

  • 集合之ArrayList
  • JetBrains GoLand 2022.3 Crack
  • Python使用深度神经网络对高光谱图像进行土地覆盖分类
  • Vue项目的打包上线步骤
  • [架构之路-144]-《软考-系统分析师》- 7-企业信息化战略与实施-1-概念、方法、与企业战略/IT战略/业务重组的关系
  • 泰克示波器校准失败
  • 【深入理解二叉树OJ题】
  • 二分查找算法
  • 智联物联分享之物联网协议MQTT简述,MQTT协议特点
  • 今年面试好激烈!
  • 主成分分析(PCA)原理
  • 计算机软件著作权登记申请流程和需要的时间
  • 天狗实战SpringBoot+Vue(二)项目结构搭建(上)
  • 离线GPU服务器配置虚拟环境
  • 日入500+的程序员都在用的“接私活”平台
  • 【IAR工程】STM8S208RB基于ST标准库下按键检测
  • ASTRA Toolbox学习笔记
  • Excel使用技巧:如何打印指定区域?如何设置禁止打印?
  • 华为路由器 高级ACL配置
  • 图解Redis,Redis主从复制与Redis哨兵机制