📜  使用 breakpoint() 和 pdb 调试Python代码(1)

📅  最后修改于: 2023-12-03 15:22:09.824000             🧑  作者: Mango

使用 breakpoint() 和 pdb 调试Python代码

在编写Python程序时,出现错误是不可避免的。为了更快地找到问题的根源,Python提供了许多工具来帮助我们调试代码。其中,breakpoint()pdb就是两个常用的调试工具。

使用 breakpoint()

breakpoint()是Python 3.7引入的一个新特性,它可以方便地向代码中添加断点。当程序运行到断点处时,会暂停执行并交互式地进入调试模式。

def foo(x):
    if x < 0:
        breakpoint()  # 添加断点
    return x ** 2

foo(-2)

在代码中添加断点后,我们可以像以下示例一样调试程序:

> /path/to/script.py(3)foo()
      1 def foo(x):
      2     if x < 0:
----> 3         breakpoint()  # 添加断点
      4     return x ** 2
(Pdb) x
-2
(Pdb) quit

在调试模式下,我们可以使用p命令打印变量,使用s命令进入函数内部,使用n命令执行下一行语句,使用c命令继续执行,以及使用q命令退出调试模式。

使用 pdb

pdb是Python自带的标准调试工具,可以方便地在命令行界面中进行调试。我们可以在代码中插入import pdb; pdb.set_trace()来打开pdb调试模式。

下面是一个示例:

import pdb

def foo(x):
    pdb.set_trace()  # 打开调试模式
    if x < 0:
        return -x
    else:
        return x

foo(-2)

在程序执行到pdb.set_trace()时,会依次输出每一行代码,并进入pdb调试模式。我们可以使用n命令执行下一行语句,使用p 变量名命令打印变量,以及使用c命令继续执行代码。

> /path/to/script.py(5)foo()
      3 def foo(x):
      4     pdb.set_trace()  # 打开调试模式
----> 5     if x < 0:
      6         return -x
      7     else:
(Pdb) n
> /path/to/script.py(7)foo()
      5     if x < 0:
      6         return -x
----> 7     else:
      8         return x
(Pdb) p x
-2
(Pdb) c

使用pdb调试工具可以方便地跟踪代码的执行流程,快速找出问题所在。

总结

breakpoint()pdb是Python开发者必备的调试工具之一。在开发过程中,我们可以根据具体情况选择合适的调试工具进行调试,以提高开发效率。