pysnooper的使用

pysnooper的基本使用
pysnooper主要是使用装饰器的形式进行函数的处理;

    '''
    When you decorate a function with `@pysnooper.snoop()`
    or wrap a block of code in `with pysnooper.snoop():`, you'll get a log of
    every line that ran in the function and a play-by-play of every local
    variable that changed.
	当您使用“@pysnoop .snoop()”装饰函数时或者在' with pysnoop .snoop(): '中封装一个代码块,
	您将得到一个日志函数中运行的每一行以及每个局部的逐行运行变量发生了变化。
    If stderr is not easily accessible for you, you can redirect the output to
    a file::可以将输出重定向到一个文件:
        @pysnooper.snoop('/my/log/file.log')
    See values of some expressions that aren't local variables::
    查看一些非局部变量表达式的值:
        @pysnooper.snoop(watch=('foo.bar', 'self.x["whatever"]'))
    Expand values to see all their attributes or items of lists/dictionaries:
        @pysnooper.snoop(watch_explode=('foo', 'self'))
    (see Advanced Usage in the README for more control)
    Show snoop lines for functions that your function calls::
    显示函数调用的函数的snoop行::
        @pysnooper.snoop(depth=2)
    Start all snoop lines with a prefix, to grep for them easily::
    添加前缀,方便进行多个函数之间的区别:
        @pysnooper.snoop(prefix='ZZZ ')
    On multi-threaded apps identify which thread are snooped in output::
        @pysnooper.snoop(thread_info=True)
    Customize how values are represented as strings::
        @pysnooper.snoop(custom_repr=((type1, custom_repr_func1), (condition2, custom_repr_func2), ...))

    '''

@pysnoop .snoop()

@pysnooper.snoop()
def number_to_bits_1(number):
    if number:
        bits = []
        while number:
            number, remainder = divmod(number, 2)
            bits.insert(0, remainder)
        return bits
    else:
        return [0]
number_to_bits_1(6)  
-------------------------------------------------------------
Starting var:.. number = 6
16:33:41.396554 call        12 def number_to_bits_1(number):
16:33:41.397055 line        13     if number:
16:33:41.397055 line        14         bits = []
New var:....... bits = []
16:33:41.397055 line        15         while number:
16:33:41.397055 line        16             number, remainder = divmod(number, 2)
Modified var:.. number = 3
New var:....... remainder = 0
16:33:41.397055 line        17             bits.insert(0, remainder)
Modified var:.. bits = [0]
16:33:41.397055 line        15         while number:
16:33:41.397055 line        16             number, remainder = divmod(number, 2)
Modified var:.. number = 1
Modified var:.. remainder = 1
16:33:41.397055 line        17             bits.insert(0, remainder)
Modified var:.. bits = [1, 0]
16:33:41.397055 line        15         while number:
16:33:41.397055 line        16             number, remainder = divmod(number, 2)
Modified var:.. number = 0
16:33:41.397556 line        17             bits.insert(0, remainder)
Modified var:.. bits = [1, 1, 0]
16:33:41.397556 line        15         while number:
16:33:41.397556 line        18         return bits
16:33:41.397556 return      18         return bits
Return value:.. [1, 1, 0]

** @pysnooper.snoop(’/logs/file.log’)**

@pysnooper.snoop('/logs/file.log')
def number_to_bits_2(number):
    if number:
        bits = []
        while number:
            number, remainder = divmod(number, 2)
            bits.insert(0, remainder)
        return bits
    else:
        return [0]
number_to_bits_2(6)

@pysnooper.snoop(prefix='number_to_bits_3 ') 给调试的行加个前缀名便于辨识和定位

@pysnooper.snoop(prefix='number_to_bits_3: ')
def number_to_bits_3(number):
    if number:
        bits = []
        while number:
            number, remainder = divmod(number, 2)
            bits.insert(0, remainder)
        return bits
    else:
        return [0]
number_to_bits_3(6) 
--------------------------------------------------------
number_to_bits_3: Starting var:.. number = 6
number_to_bits_3: 16:33:41.403571 call        36 def number_to_bits_3(number):
number_to_bits_3: 16:33:41.403571 line        37     if number:
number_to_bits_3: 16:33:41.404073 line        38         bits = []
number_to_bits_3: New var:....... bits = []
number_to_bits_3: 16:33:41.404073 line        39         while number:
number_to_bits_3: 16:33:41.404073 line        40             number, remainder = divmod(number, 2)
number_to_bits_3: Modified var:.. number = 3
number_to_bits_3: New var:....... remainder = 0
number_to_bits_3: 16:33:41.404073 line        41             bits.insert(0, remainder)
number_to_bits_3: Modified var:.. bits = [0]
number_to_bits_3: 16:33:41.404073 line        39         while number:
number_to_bits_3: 16:33:41.404073 line        40             number, remainder = divmod(number, 2)
number_to_bits_3: Modified var:.. number = 1
number_to_bits_3: Modified var:.. remainder = 1
number_to_bits_3: 16:33:41.404073 line        41             bits.insert(0, remainder)
number_to_bits_3: Modified var:.. bits = [1, 0]
number_to_bits_3: 16:33:41.404073 line        39         while number:
number_to_bits_3: 16:33:41.404073 line        40             number, remainder = divmod(number, 2)
number_to_bits_3: Modified var:.. number = 0
number_to_bits_3: 16:33:41.404073 line        41             bits.insert(0, remainder)
number_to_bits_3: Modified var:.. bits = [1, 1, 0]
number_to_bits_3: 16:33:41.404073 line        39         while number:
number_to_bits_3: 16:33:41.404073 line        42         return bits
number_to_bits_3: 16:33:41.404073 return      42         return bits
number_to_bits_3: Return value:.. [1, 1, 0]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值