Python: 告别 Print?

  相比Print调试往往需要写很多行Print语句,使用PySnooper仅仅一行代码就能实现对整个函数的调试,更加高效;相比Logging模块,使用PySnooper无需进行繁琐的配置,更加简单。
example:
 
执行这段代码,输出结果(节选)如下:
 
只需要导入pysnooper模块,并且给函数加上装饰器@pysnooper.snoop(),我们就可以实现对一个python函数进行监听。
在上面的例子中,根据输出结果,我们可以得到:
  1.  程序执行步骤的顺序
  2. 程序中变量的值的变化情况
 
pysnooper支持灵活多样的程序调试,包括但不限于:
  1. 给函数添加装饰器@pysnooper.snoop(),完成对函数的监听
  2. 使用with pysnooper.snoop()语句,实现对程序块(block),即一行或者多行程序进行监听
  3. 使用@pysnooper.snoop(‘my/file.log’),将监听结果重定向到文件系统
  4. 监听非局部变量的值:@pysnooper.snoop(variables=('foo.bar','self.whatever'))
  5. 监听一个列表或者字典变量的所有元素或者属性:@pysnooper.snoop(watch=('foo.bar','self.x["whatever"]'))
  6. 深度监听--监听函数中的行所调用的其他函数:@pysnooper.snoop(depth=2)
  7. 在多线程序中,指定监听哪些线程:@pysnooper.snoop(thread_info=True)
 
PySnooper的更多高级用法参见:https://github.com/cool-RR/PySnooper#advanced-usage
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
posted @ 2019-07-19 15:00  就黎  阅读(292)  评论(0编辑  收藏  举报