0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

为什么PySnooper能从其他智能调试工具中脱颖而出?

电子工程师 来源:lq 2019-04-29 18:30 次阅读

4 月 23 日,GitHub 每日趋势榜第一位是一个 Python 相关项目:PySnooper。

该项目很快获取2200 Star。

PySnooper 是个什么东西?

如果你写的 Python 代码不能按如期那样运行,你会绞尽脑汁想为啥出错了。虽然你希望有支持断点的成熟调试器,但或许你现在不想去设置这样的调试器。

你想知道哪些行代码是正常运行,哪些行不正常。据说大多数人会在可疑位置使用 print 输出语句。

其实PySnooper 的作用有点类似,你不用小心谨慎地用 print 输出语句,只需在想调试的函数中引入一个装饰器。然后得到函数的详细日志,包括运行了哪些行、何时运行,以及何时更改了局部变量。

为什么 PySnooper 能从其他智能调试工具中脱颖而出?

因为你可以在不需要进行任何设置的情况下将其用于糟糕的、庞大的企业代码库中。只需打开装饰器(如下示例所示),并将输出重定向到一个专用的日志文件,将日志文件路径指定为第一个参数

使用范例

范例是一个把数字转成二进制的函数。

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 = 621: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 = 0Modified var:.. number = 321: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 = 1Modified var:.. remainder = 121: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 = 021: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 bits21:14:32.099769 return 10 return bits

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 二进制
    +关注

    关注

    2

    文章

    705

    浏览量

    41248
  • 函数
    +关注

    关注

    3

    文章

    3866

    浏览量

    61308
  • python
    +关注

    关注

    51

    文章

    4674

    浏览量

    83464

原文标题:GitHub 热门:别再用 print 输出来调试代码了

文章出处:【微信号:DBDevs,微信公众号:数据分析与开发】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    舵机调试工具

    参与飞思卡尔智能车舵机调试工具,平常玩玩智能车,调试时也可以用到,不错的东西
    发表于 05-10 08:39

    怎样让你的问答脱颖而出,问答规则小测验

    怎样让你的问答脱颖而出,问答规则小测验
    发表于 04-14 15:14

    技术天团教你快速搭建一个在同行脱颖而出的低成本LoRa网络

    方式均可与直播嘉宾进行互动:方法一:点击“技术天团教你快速搭建一个在同行脱颖而出的低成本LoRa网络”方法二:扫一扫或微信搜索关注公众号“发烧友课堂”,点击“精彩直播”即可。其他精彩直播,尽在“发烧友课堂”.`
    发表于 05-26 15:17

    PCBA供应商如何在竞争脱颖而出

    `  作为PCBA供应商,以为发送一份报价,然后坐等成交,那么就大错特错。PCBA加工厂家要在竞争脱颖而出,往往忽视了这个过程中所需要付出的艰辛,更重要的是一种营销思维。为了回答这个问题,我们
    发表于 01-18 15:37

    智能穿戴企业如何在激烈的竞争脱颖而出

    智能穿戴企业如何在激烈的竞争脱颖而出智能穿戴行业经过几年的跌宕起伏的发展,终于迎来了发展的黄金期,越来越多的智能穿戴产品被用户接受和购
    发表于 02-01 17:15

    串口调试工具

    串口调试工具 便于单片机下载 串口调试工具 串口调试工具
    发表于 11-20 16:35 39次下载

    舵机调试工具

    飞思卡尔智能车舵机调试工具其他舵机调试可自行修改舵机参数处理
    发表于 02-24 17:25 8次下载

    串口调试工具

    串口调试工具
    发表于 12-28 10:16 166次下载

    Maxim Integrated让您的产品脱颖而出

    Maxim Integrated的模拟整合方案帮助我们的用户脱颖而出。Maxim以高度集成的创新能力,为用户提供无缝连接的技术方案。我们齐心协力,不断突破技术瓶颈,充分理解您的需求,帮助您快速地将产品推向市场!公司2012财年的销售额为24亿美元。
    的头像 发表于 06-22 15:05 3732次阅读

    脱颖而出”的同步磁阻电机有何优势

    同步磁阻电机具有磁阻性质,遵循磁通总是沿着磁阻最小路径闭合的运行原理,通过转子在不同位置引起的磁阻变化产生的磁拉力形成转矩,凭借着高性能、低成本、节能优势在众多电机品类中脱颖而出
    发表于 08-26 09:45 2285次阅读

    串口调试工具

    串口调试工具免费下载。
    发表于 09-13 17:41 31次下载

    调试工具检测

    调试工具检测
    发表于 01-31 15:01 0次下载

    STM32为何在诸多的单片机中脱颖而出

    STM32为何在诸多的单片机中脱颖而出
    的头像 发表于 10-19 18:05 288次阅读
    STM32为何在诸多的单片机中<b class='flag-5'>脱颖而出</b>?

    modbus调试工具

    modbus调试工具
    发表于 04-28 13:50 85次下载

    串口调试工具

    串口调试工具
    发表于 04-28 13:53 7次下载