python-装饰器pysnooper

 

变量追踪器?

"""
@pysnooper
日志打印工具,显示运行的时间及运行到当前代码时各变量的值(默认只打印局部变量的值)
可用于装数类、函数,
可直接使用with pysnooper.snoop(): 只打印函数里的变量 output='a.txt' #将结果保存到文件a.txt prefix='shuzf' #打印信息前添加shuzf watch=("a",) #打印变量a的值,不管是不是全局还是局部变量 watch_explode=("a",) #打印变量a的子值,不管是不是全局还是局部变量 列表/字典里的值 depth=1 #设置追踪级别默认1,若装饰函数调用了其他函数,则需要设置为2   
""" import pysnooper @pysnooper.snoop(watch=("a",)) def bSort(arr): for i in range(len(arr)-1): for j in range(len(arr)-i-1): if arr[j] > arr[j+1]: arr[j],arr[j+1] = arr[j+1],arr[j] return arr bSort([3,2,1]) @pysnooper.snoop(watch=("a",)) def test1(c): global a a = [1,2,3] def inner(): nonlocal c c += 10 print('局部变量', locals()) print('全局变量', list({key: value} for key, value in globals().items() if ('__' not in key and 'pysnooper' not in key))) return inner() test1(1) def test2(): lst = [i for i in range(10)] with pysnooper.snoop(): lower = min(lst) upper = max(lst) mid = (lower + upper) / 2 print(lower, mid, upper) test2()

 

posted @ 2022-03-04 17:58  南方的墙  阅读(43)  评论(0编辑  收藏  举报