Advertisement
Guest User

Untitled

a guest
May 23rd, 2019
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.68 KB | None | 0 0
  1. 下面项目作者写了一个函数以将数值转换为二进制码,该函数返回的是一个二进制列表。下面我们将装饰器 @pysnooper.snoop() 加到该函数上,就大功告成了。
  2.  
  3. import pysnooper
  4.  
  5. @pysnooper.snoop()
  6. def number_to_bits(number):
  7. if number:
  8. bits = []
  9. while number:
  10. number, remainder = divmod(number, 2)
  11. bits.insert(0, remainder)
  12. return bits
  13. else:
  14. return [0]
  15.  
  16. number_to_bits(6)
  17. 该函数返回的日志如下,我们可以看到在调用 number_to_bits 函数时,赋予参数 number 的初始值为 6。然后,PySnooper 就还是对着源代码一行行分析了。
  18.  
  19.  
  20. 如上分析所示,函数每创建一个新变量,那么这个变量的值、这个变量的变化都会展示出来。而且 PySnooper 还将循环展开,因此变化的细节更加明确。最终 6 的二进制版本应该是 [1, 1, 0],它的变化过程也展示在 bits 变量中。
  21.  
  22. 现在通过这些详细信息,PySnooper 再也不用担心我们用 print 函数强行 deBug 了。
  23.  
  24. PySnooper 详细特征
  25. 如果标准错误输出难以获得,或者太长了,那么可以将输出定位到本地文件:
  26.  
  27. @pysnooper.snoop('/my/log/file.log')
  28. 查看一些非本地变量的值:
  29.  
  30. @pysnooper.snoop(variables=('foo.bar', 'self.whatever'))
  31. 展示我们函数中调用函数的 snoop 行:
  32.  
  33. @pysnooper.snoop(depth=2)
  34. 将所有 snoop 行以某个前缀开始,更容易定位和找到:
  35.  
  36. @pysnooper.snoop(prefix='ZZZ ')
  37. 演示 PySnooper
  38. 下面我们最开始尝试使用 PySnooper 获取 TensorFlow 的信息,如果它能获取各种张量信息,那可就太强大了。
  39.  
  40. 首先使用 pip 安装包:
  41.  
  42. pip install pysnooper
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement