PySnooper大家好,今天分享一个开源项目给大家。它是一个调试工具,可以帮助Python开发人员,如果你想弄清楚为什么你的Python代码没有按照你认为的那样去做。您可能希望使用带有断点和监视功能的功能齐全的调试器,但暂时还不必费心去设置它。你想知道哪些行在运行,哪些没有,局部变量的值是多少。大多数人会在重要的地方使用打印行,其中一些显示变量的值。PySnooper允许您执行相同的操作,除了print只需要向感兴趣的函数添加装饰器行,而不是制作正确的装饰器行。您将获得该函数的逐个播放日志,包括运行了哪些行以及更改局部变量的确切时间。是什么让PySnooper从所有其他代码智能工具中脱颖而出?您无需任何设置即可在繁琐的企业代码库中使用它。只需使用如下所示的装饰器,并通过将其路径指定为第一个参数将输出重定向到专用日志文件。导入pysnooper@pysnooper.snoop()defnumber_to_bits(number):ifnumber:bits=[]whilenumber:number,remainder=divmod(number,2)bits.insert(0,remainder)returnbitselse:return[0]number_to_bits(6)Sourcepath:.../my_code/foo.pyStartingvar:..number=615:29:11.327032call4defnumber_to_bits(number):15:29:11.327032line5ifnumber:15:29:11.327032line6bits=[]Newvar:.......bits=[]15:29:11.327032line7whilenumber:15:29:11.327032line8number,remainder=divmod(number,2)Newvar:.......remainder=0Modifiedvar:..number=315:29:11.327032line9bits.insert(0,remainder)Modifiedvar:..bits=[0]15:29:11.327032line7whilenumber:15:29:11.327032第8行数字,余数=divmod(number,2)Modifiedvar:..number=1Modifiedvar:..remainder=115:29:11.327032line9bits.insert(0,remainder)Modifiedvar:..bits=[1,0]15:29:11.327032line7whilenumber:15:29:11.327032line8number,remainder=divmod(number,2)Modifiedvar:..number=015:29:11.327032line9bits.insert(0,remainder)Modifiedvar:..bits=[1,1,0]15:29:11.327032line7whilenumber:15:29:11.327032line10returnbits15:29:11.327032return10returnbitsReturnvalue:..[1,1,0]或者,如果你不想跟踪整个函数,你可以将相关部分包装在awithblock:importpysnooperimportrandomdeffoo():lst=[]foriinrange(10):lst.append(random.randrange(1,1000))withpysnooper.snoop():lower=min(lst)upper=max(lst)mid=(lower+upper)/2print(lower,mid,upper)foo()Newvar:....i=9Newvar:....lst=[681,267,74,832,284,678,...]09:37:35.881721第10行下=min(lst)Newvar:.......lower=7409:37:35.882137line11upper=max(lst)Newvar:......upper=83209:37:35.882304line12mid=(lower+upper)/274453.0832Newvar:......mid=453.009:37:35.882486line13print(lower,mid,upper)安装方法pipinstallpysnooper项目地址:https://github.com/cool-RR/Py...喜欢今天的推荐吗?如果喜欢,请在文章底部留言或点赞,表示对我的支持。您的评论、点赞、转发和关注是我持续更新的动力!关注我的公众号回复:“1024”,免费领取海量学习资源,先到先得!
