pysnooper调试库,背景、示例、方法

一、背景

我们在进行代码调试时,通常使用两种方式。

  • print 输出调试的内容或者标识
  • 通过断点调试debug
    但是我想知道代码的中间的每一行程序运行后的结果,方便的知道每一行程序运行后的结果,而不需要再手动增加 print 展示过程数据、调试程序
    Python 的第三方调试库**pysnooper**。通过装饰器轻松搞定

二、示例 pysnooper`

pip install pysnooper

  • 示例一 跟踪整个函数
    import pysnooper
    
    @pysnooper.snoop()
    def number_to_bits(number):
        for i in range(4):
            print(i)
    
    number_to_bits(2)
    
    pysnooper调试库,背景、示例、方法
    • 示例二 跟踪相关部分
      import pysnooper
      import random
      
      def foo():
          lst = []
          for i in range(10):
              lst.append(random.randrange(1, 1000))
      
          with pysnooper.snoop():
              lower = min(lst)
              upper = max(lst)
              mid = (lower + upper) / 2
              print(lower, mid, upper)
      foo()
      

三、方法

  1. 如果标准错误输出难以获得,或者太长了,那么可以将输出定位到本地文件:
    @pysnooper.snoop('/my/log/file.log')
    
  2. 查看一些非本地变量的值:
    @pysnooper.snoop(variables=('foo.bar', 'self.whatever'))
    
  3. 展示函数调用的函数的监听行
    @pysnooper.snoop(depth=2)
    
  4. 将所有 监听行以某个前缀开始,更容易定位和找到:
    @pysnooper.snoop(prefix='ZZZ ')
    
  5. 高级更多
上一篇:解决Visual Studio 加载符号卡死情况


下一篇:分享一个“贫民版”调试工具——PySnooper