没想到代码还能这么调试,这么多年 Python 白玩了

2023-06-05 0 520

还没看完的老师,热烈欢迎赶赴翻查:第六章:增容基本功

没想到代码还能这么调试,这么多年 Python 白玩了

当中有一则是有关 pdb 的增容基本功的:

里头如是说了三种 pdb 的增容出口处,也是绝大部分所津津乐道的。

这儿再带我们简述呵呵

第三种:选定 -m pdb 来迈入

$ python -m pdb pdb_demo.py

第三种:采用 pdb.set_trace() 在标识符中增设PT5716SB0

import pdb pdb.set_trace()

但只不过,pdb 还除此之外三种增容方式,第三种方式,可能将有 99% 的开发人员都喷过,即使连见过都没。

这三种方式,是相互配合 Python Console 的可视化介面来同时实现的。

具体来说我准备好两个名叫 utils.py 的 Python文档,里头表述了两个 sum 的辅助工具表达式(仅作模拟用)。

def sum(*args): result = 0 for arg in args: result += arg return result

接着在终端产品源文档 Python 步入 Console 的商业模式,引入那个组件,并调用 sum 表达式,在恒定情况下,表达式能恒定组织工作。

>>> import utils >>> utils.sum(1,2,3) 6

但假如你的模块类别指是了 str,表达式就会收起啦~

>>> utils.sum(1,2,”3″) Traceback (most recent call last): File “<stdin>”, line 1, in <module> File “/Users/MING/utils.py”, line 4, in sum result += arg TypeError: unsupported operand type(s) for +=: int and str

由于这儿的收起是我刻意触发的,从报错来看,是很容易定位的。

但是在实际应用中,难免会遇到一些无法从收起信息直接判断 bug 所在的情况。

那个时候,假如能在收起后,切换到 pdb 的增容商业模式就好了

事实上,pdb 是支持这种用法的。

只要你在当前的会话中,引入 pdb,再执行 pdb.pm(),就能切换到熟悉的 pdb 增容介面,并在抛错的地方打上PT5716SB0,接着你就能任意的查看运行时的变量信息。

没想到代码还能这么调试,这么多年 Python 白玩了

假如你不是想等收起了再增容,而是一开始就想步入增容商业模式,能采用 pdb.runcall() 表达式

没想到代码还能这么调试,这么多年 Python 白玩了

有的是老师可能将还会想到 pdb.run() 和 pdb.runeval() 这两个表达式,但这三种方式,是需要提前在表达式增容PT5716SB0的,这就比较麻烦了,一般情况下不推荐采用。

综上所述, pdb 增容方式主要有六种:

python -m pdb:运行 python 文档时直接步入增容模pdb.set_trace():事先增设PT5716SB0,接着直接运行 python 文档pdb.run():事先增设PT5716SB0,接着直接运行 python 组件pdb.runeval():事先增设PT5716SB0,接着直接运行 python 组件(与 pdb.run 类似)pdb.pm():在 Console 商业模式下出错后直接切换到增容商业模式,并定位到收起位置。pdb.runcall():能在不增设PT5716SB0的情况下,直接增容标识符片段。

当中,pdb.pm() 是本文的重点,他虽然冷门,但却很好用,推荐给我们。

以上就是我今天的分享,希望对你有用,假如你也有好用的增容小基本功,热烈欢迎留言分享,互相学习。

文章最后给我们如是说两个我自己写的在线文档:

第两个文档:

整理了 100 个 PyCharm 的采用基本功,为了让新手能够直接上手,我花了很多的时间录制了上百张 GIF 动图,有兴趣的赶赴在线文档阅读。

没想到代码还能这么调试,这么多年 Python 白玩了

第二个文档:

Python黑魔法手册 – Python黑魔法手册 2.0 文档magic.iswbm.com/

系统收录各种 Python 冷门知识,Python Shell 的多样玩法,令人疯狂的 Python 炫技操作,Python 的超详细进阶知识解读,非常实用的 Python 开发基本功等。

没想到代码还能这么调试,这么多年 Python 白玩了

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务