python代码调试工具_我猜你需要这个Python调试工具
一般情况下,在编写 Python 代码时,如果想弄清楚为什么 Python 代码没有按照预期执行的原因,比如你想知道哪些是正在运行,哪些没有运行,以及局部变量的值是什么...通常我们会使用包含断点和观察模式等功能成熟的调试器,或者直接使用 print 语句打印出来。
今天,猿妹和大家分享一个“贫民版”调试工具——PySnooper
PySnooper允许你执行以上相同的操作,只需为要调试的函数添加一个装饰器即可,而不需要构建正确的 print 打印。你还将得到函数的详细日志,包括运行了哪些代码行、何时运行以及何时更改了局部变量。
PySnooper 使用起来十分简单,开发者可以在任何庞大的代码库中使用它,而无需进行任何设置。你只需添加装饰器,并为日志输出地址指定路径,方法是将其路径指定为***个参数。
目前,PySnooper在GitHub上已经获得 7047 个Star,371 个Fork(GitHub地址:https://github.com/cool-RR/PySnooper)
示例
以下编写了一个函数,通过返回一个二进制列表。我们只需要通过添加@pysnooper.snoop()装饰器就可以了:
import pysnooper
@pysnooper.snoop()
def number_to_bits(number):
if number:
bits= []
while number:
number, remainder=divmod(number, 2)
bits.insert(0, remainder)
return bits
else:
return [0]
number_to_bits(6)
输出如下:
Starting var:..number=6
15:29:11.327032 call 4 def number_to_bits(number):
15:29:11.327032 line 5 if number:
15:29:11.327032 line 6 bits= []
New var:....... bits= []
15:29:11.327032 line 7 while number:
15:29:11.327032 line 8 number, remainder=divmod(number, 2)
New var:....... remainder=0
Modified var:.. number=3
15:29:11.327032 line 9 bits.insert(0, remainder)
Modified var:.. bits= [0]
15:29:11.327032 line 7 while number:
15:29:11.327032 line 8 number, remainder=divmod(number, 2)
Modified var:.. number=1
Modified var:.. remainder=1
15:29:11.327032 line 9 bits.insert(0, remainder)
Modified var:.. bits= [1, 0]
15:29:11.327032 line 7 while number:
15:29:11.327032 line 8 number, remainder=divmod(number, 2)
Modified var:.. number=0
15:29:11.327032 line 9 bits.insert(0, remainder)
Modified var:.. bits= [1, 1, 0]
15:29:11.327032 line 7 while number:
15:29:11.327032 line 10 return bits
15:29:11.327032 return 10 return bits
Return value:.. [1, 1, 0]
特性
stderr,则可以将选择输出到指定文件:
@pysnooper.snoop('/my/log/file.log')
查看一些非局部变量的变量值:
@pysnooper.snoop(variables=('foo.bar', 'self.whatever'))
显示函数调用的函数的snoop行:
@pysnooper.snoop(depth=2)
【责任编辑:庞桂玉 TEL:(010)68476606】
点赞 0
python代码调试工具_我猜你需要这个Python调试工具相关推荐
- 决策树原理实例(python代码实现)_决策树原理实例(python代码实现)
决策数(Decision Tree)在机器学习中也是比较常见的一种算法,属于监督学习中的一种.看字面意思应该也比较容易理解,相比其他算法比如支持向量机(SVM)或神经网络,似乎决策树感觉"亲 ...
- python代码书写_如何优雅的书写Python代码, python使用小技巧
博客链接 文章目录 Python使用技巧 变量命名技巧 用有意义易读的命名 同类型使用相同词汇 可搜索的名字 自我描述的变量 不要取隐晦的名字 精简不重复 默认参数代替运算和条件 实用小窍门 变量值交 ...
- python 代码换行_你一定不知道的Python小技巧,提升你Python代码的可读性
Python的初学者,开发者都应该知道的代码可读性提高技巧,本篇主要介绍了如下内容: PEP 8是什么以及它存在的原因 为什么你应该编写符合PEP 8标准的代码 如何编写符合PEP 8的代码 为什么我 ...
- python代码规范化_数据标准化方法及其Python代码实现
数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间.目前数据标准化方法有多种,归结起来可以分为直线型方法(如极值法.标准差法).折线型方法(如三折线法).曲线型方法 ...
- 全国python一级考试_全国青少年软件编程(python)等级考试试卷(一级)
下列选项中可以获取Python整数类型帮助的是 A.>>> help(float)B.>>> dir(str)C.>>> help(int)D.& ...
- google python代码规范_如何用好python编码规范,写一手漂亮的代码
前一段时间在编写python 代码的时候编辑器中一直在提示规范问题,因为强迫症的原因,我决定遵循python 的编码规范去编码,然后把需要注意的点记录下来, 帮助自己和大家一起成长. 这是我的main ...
- python函数能否增强代码可读性_总结的几个Python函数方法设计原则
在任何编程语言中,函数的应用主要出于以下两种情况: 1.代码块重复,这时候必须考虑用到函数,降低程序的冗余度 2.代码块复杂,这时候可以考虑用到函数,增强程序的可读性 当流程足够繁杂时,就要考虑函数, ...
- python 逐行调试工具_在线编译或编辑Python的5个最佳工具
离线Python编辑器和编译器都具有许多功能,但是在线编译器通常在功能上受到限制,并试图满足特定需求而不是满足所有需求,其中在线编译大多数是免费的,所以也受到开发者的热爱. 在本文中,我们将浏览各种狂 ...
- python 代码分块_[代码全屏查看]-python多进程分块读取文件
[1].[代码] [Python]代码 # -*- coding: GBK -*- import urlparse import datetime import os from multiproces ...
最新文章
- RESTful之异常处理 Exceptions
- 2014.12.22 几个有用的oracle正则表达式
- 互联网大佬马老师于昨日教师节正式卸任,让位现任CEO张勇;华为发布新一代CloudLink视讯解决方案,普惠4K+AI;联通……...
- Android Studio3.2.1升级刨坑记录
- Web Service Software Factory 入门
- OpenCV2:Mat介绍及常见用法
- android拷贝文件到内部存储,将文件保存在内部存储android中
- 汉字注音符号学习(引用自维基百科)
- JavaScript 模块化编程
- 2022年天津专升本报考专业对口限制目录,升本专业课如何备考~
- js检测PDF插件 Adobe Reader是否安装
- 4G 优盘格式化后变4M 利用量产工具修复~~~
- Python 网络数据采集(三):采集整个网站
- Java动态代理原理分析
- 梦想太远,现实太近 3
- 数据仓库-基础知识(维度建模)
- 计算机格式化后能恢复数据吗,硬盘格式化后数据还能恢复吗-数据恢复百科
- python 本月天数
- 牛!上半年跨境电商进出口增长28.6%;亚马逊日本站自动定价工具增加新功能;TikTok试点视频简历项目…|洞悉跨境
- 王道计算机操作系统考研复习指导知识点总结