Python里三个高逼格的调试神器
副问题[/!--empirenews.page--]
调试是开拓进程中不行停止的一个环节,在Python中我们行使print、logging、assert等要领举办调试既简朴又适用,但事实有其范围性。本日这篇文章为各人带来三个器材,个中有Python的内置模块也有第三方库,它们提供了调试代码所需的大部门常用成果,将极大的晋升我们的开拓和bug解除服从。 1.PDB pdb是Python中的一个内置模块,启用pdb后可以对代码举办断点配置和跟踪调试。为了演示利便,我们筹备一个样例措施pdb_test.py:
之后在终端中输入python -m pdb pdb_test.py呼吁,进入pdb的调试模式: 这时我们就可以通过各类呼吁节制代码执行可能查察当前变量,譬喻l可以查察全部代码,n是执行下一步代码,p可以查察当前变量等等,必要留意的是呼吁n只会执行主措施中的代码,假如想要单步执行子函数中的代码,必要行使s指令,调试结果如下: 可以看到,通过s指令(假如只想在主函数中单步执行可以行使n)和p指令,我们节制措施单步运行并及时查察了相干变量。可是单步执行事实是一种服从很是低下的调试方法,尤其今世码量较量大的时辰更是恶梦,这时就必要用到pdb的set_trace()要领,我们对样例措施pdb_test.py做一点修改:
pdb.set_trace()的浸染就是在代码中配置断点,在pdb调试模式下,行使c呼吁就会直接跳转到下一个断点位置,假如之后没有其他断点就会执行完所有代码,调试结果如下: 除了上面提到的几个指令以外,pdb尚有其他一些较量常用的呼吁(见下表),综合行使根基可以或许满意一般的调试需求。 2.Better-exceptions better-exceptions是一个Python第三方库,作者对他的界说是“使非常信息越发雅观和细致”。在正式行使之前先说下这个库的安装:
此刻就可以正常行使better-exceptions举办调试了,为了演示结果越发明明,我们对上文中的代码稍作修改作为本次的样例措施better_test.py:
很明明,上面这段代码在执行进程中会由于分母为0而抛出非常,此刻我们执行python better_test.py,看看启用了better-exceptions后的非常信息是什么样子的: 从上面这幅图可以看出better-exceptions对非常信息的修改首要表此刻两个方面:
这样一来,许多时辰我们只必要按照better-exceptions输出的帮助信息就能判定发生非常的位置和缘故起因,而不必像早年一样再次查察源代码并调查运行功效,正如作者所说:Pretty and more helpful。 可是,过多的信息输出也会有题目,那就是今世码层级布局较量伟大的时辰,better-exceptions输出的帮助信息也许会很是之多,就好比上面的divisionnumber函数,他地址的地点信息大都时辰我们并不体谅,为了屏障这些“垃圾”信息,我们可以在代码中加一行:
XXX是应承表现的最大字符长度,好比这里配置为10,再来运行better_test.py这个措施就会是下面的功效: 可以看到,对函数divisionnumber的注释只表现了最开始的" 除了上面提到的成果之外,better-exceptions还可以和logging尚有django无缝接入,这使得它的应用越发机动,关于这方面内容各人可以查察项目文档。 (编辑:河北网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |