Python pdb 教程 - Python pdb2024年8月29日 | 阅读 7 分钟 在本教程中,我们将学习 Python 的调试工具 pdb。调试应用程序是在开发者时间紧迫且希望其正常工作时令人不快的活动。我们将介绍使用 pdb(Python 的交互式源代码调试器)的基础知识。我们还将介绍 pdb 的一些常用用法。 跟踪 bug 并更快速可靠地修复有缺陷的代码是一种很好的做法。让我们来介绍一下 Python pdb 模块。 Python pdb 模块Python pdb 模块用于在 Python 中进行调试,它内置于 Python 标准库中。pdb 被定义为 Pdb 类,该类在内部利用 bdb(基本调试器函数)和 cmd(支持面向行的命令解释器)模块。 它具有在命令行上运行的优点,非常适合在远程服务器上调试代码。 pdb 模块支持设置断点、单步执行代码、查看堆栈跟踪和源代码列表。 启动 Python 调试器Python 提供了多种调用调试器的方法。 我们需要插入 import pdb, pdb.set_trace() 命令来在程序内开始调试。如果我们定义了程序中的断点,我们的脚本就会自动在该断点处停止执行。Python 提供了 breakpoint() 函数,它的作用与我们手动定义的作用相同。让我们理解下面的例子。 示例 - 1:两个数字相加故意出错 - input() 函数返回字符串,程序会将这些字符串连接起来,而不是相加输入的数字。 输出 > d:\python project\test_pdb.py(8) 解释 - 在上面的输出中,第一行是可执行文件的目录路径,断点所在行的行号,以及 <module>.。这意味着我们在 test_pdd.py 文件的第 8 行设置了一个断点,它出现在 <> 内部。下一行表示我们执行停止的代码行。该行尚未执行。然后我们有一个 pdb 提示符,可以使用以下命令进行代码导航。
例如,当我们在 pdb 提示符下运行 help 命令时,它会显示 - 现在我们可以检查变量 whatis 的类型和变量名。让我们看下面的例子。 示例 - 当我们使用 next 命令时 - 打印表达式print 命令会计算传入的表达式。如果传递一个变量名,pdb 会打印其当前值。但是,我们可以执行几项操作来确定正在运行的应用程序的状态。 让我们来理解下面的例子。我们使用 get_path() 方法获取文件路径。为了检查程序进程,我们调用 pdb.set_trace() 来暂停执行。 示例 - 输出 > d:\python project\test_pdb.py(891)get_path() -> return head (Pdb) 那么上面代码中发生了什么 -
现在让我们打印一些表达式来获取应用程序的当前状态。 我们可以将有效的求值表达式传递给 p 命令。 当我们在调试程序并想直接使用测试替代实现时,这些表达式非常有帮助。也可以使用 pp(pretty-print)命令。当我们要打印输出量很大的变量时,它很有用。 事后调试事后调试是指在程序完成执行过程后进入调试模式。pdb 模块提供了 pm() 和 post_morterm() 函数。这些函数直接指向导致错误的行。让我们来理解下面的例子 - 示例 - 输出 Enter first number : 34 Enter second number : 65 Traceback (most recent call last): File "d:/Python Project/test_pdb.py", line 9, in 检查变量栈程序使用的所有局部或全局变量都维护在堆栈上。我们可以使用 args(或 use a) 来打印当前活动函数的所有参数。我们可以使用 p 命令来计算作为参数传递的表达式并打印结果。让我们看下面的调试。 示例 - 显示表达式pdb 模块除了 p 和 pp 之外,还提供了其他命令来告诉 pdb 显示表达式的值,如果值发生变化,则在执行停止时显示。让我们来理解下面的命令语法和描述。
Python Pdb 断点当我们处理大型程序时,断点起着至关重要的作用。我们经常希望添加可能发生错误的断点数量。pdb 模块提供了 break 命令来实现这一点。让我们看看下面的语法。 语法 - 如果未给出文件名,则为行号 lineno,则使用当前源文件。第二个参数 condition 非常强大且重要。使用它,我们可以在 condition 存在时应用断点。如果我们传递第二个参数,则当表达式求值为 true 时,pdb 将中断。 让我们理解以下示例 - 示例 - 输出 > d:\python project\test_pdb.py(7) 管理断点我们还可以使用 enable、disable 和 remove 命令来管理断点。disable 允许调试器在到达断点时不要停止,而 enable 则激活禁用的断点。 让我们理解以下示例 - 示例 - 输出 > d:\python project\test_pdb.py(7) 结论在本教程中,我们介绍了 pdb 模块的基本和常用概念。我们学习了打印表达式、pdb 命令、如何使用断点、显示表达式以及实现了一些示例。调试有助于程序员逐行分析程序。Python 自带一个易于导入和使用的默认调试器。pdb 模块在调试中起着至关重要的作用,尤其是在我们处理大型程序时。 |
在执行某些任务时,我们必须出于多种原因使用图表,例如折线图、条形图等,例如使任务更具交互性,以非常有趣的方式传递信息,图表易于理解且不言自明等。这就是为什么绘制图表或...
阅读 8 分钟
简介:在本文中,我们将讨论如何检查 Python 中的 10 位手机号码验证。这里我们只检查 10 位手机号码的验证。手机号码是 7894561230。验证手机号码有一些标准,即 - 第一位数字……
7 分钟阅读
数据框的值会逐步被其他品质所取代。这与使用 .loc 或 .iloc 进行更新不同,后者要求您指定一个位置以用某个值进行更新。to_replace: str, regex, list, dict, Series, int, float, or None 查找的最有效方法...
阅读 15 分钟
简介:在本文中,我们将讨论 Python 脚本中的暂停。Python 3 中使用 input() 方法从用户收集数据。出于编程目的,可能需要等待或暂停输入任务一段时间。例如,如果脚本包含...
阅读 3 分钟
?可以使用 time 模块中的 sleep() 函数将调用者线程的执行暂停任意时间。它将默认执行您的代码一百万次。有几种在 Python 中添加时间延迟的方法,包括:使用...
阅读 3 分钟
在本教程中,我们正在讨论如何使用 Python 进行 Web 开发。Python 是一门可爱的语言。它易于学习且有趣,其语法(规则)简单明了。Python 是初学者的首选;但仍然强大且...
阅读 6 分钟
我们非常熟悉 Python 中可用的数据类型以及我们可以对它们执行的不同操作。我们知道,字符串是用引号 '' 表示的字符序列。它们是不可变的,这意味着它们一旦创建就无法更改...
阅读 4 分钟
在接下来的教程中,我们将学习如何使用 Python 编程语言在列表中以相等概率找到出现次数最多的元素的索引。那么,让我们开始吧。理解问题 给定一个包含重复元素的列表,我们需要找到...
5 分钟阅读
在本教程中,我们将演示如何使用个人 ID 访问一个人的数据,个人 ID 是 IMDb 分配给每个人的个人识别号。搜索人物方法可以用来按姓名查找人物,但由于许多人有相同的……
阅读1分钟
Python 中类变量和实例变量的区别 面向对象编程允许开发者在类级别或实例级别使用变量。变量是表示我们在程序中使用的值的必要符号。类级别的变量被称为类变量,...
5 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India