📜  在 python 中调试(1)

📅  最后修改于: 2023-12-03 14:51:06.647000             🧑  作者: Mango

在 Python 中调试

调试是程序开发过程中不可或缺的一个环节。在 Python 中,我们可以使用内置的调试工具,来帮助我们找出程序中的问题。本文将介绍 Python 中调试的基本使用方法。

使用 print() 函数

最基本的调试方式就是使用 print() 函数来打印出程序执行过程中的变量值和调试信息。例如:

def add(a, b):
    result = a + b
    print('debug: result =', result)  # 打印调试信息
    return result

x = 1
y = 2
z = add(x, y)
print(z)

上述代码中,我们使用了 print() 函数来打印出函数执行过程中的调试信息,帮助我们理解程序运行的过程。

使用断点调试

除了 print() 函数之外,Python 还提供了内置的断点调试工具——pdb。可以在程序的关键位置设置断点,然后在断点处逐行调试程序。

在代码中设置断点的方法是在需要断点的行上方添加如下代码:

import pdb; pdb.set_trace()

例如:

def add(a, b):
    result = a + b
    import pdb; pdb.set_trace()  # 设置断点
    return result

x = 1
y = 2
z = add(x, y)
print(z)

当程序执行到 import pdb; pdb.set_trace() 处时,程序会停止执行,进入 pdb 调试模式。在调试模式下,我们可以输入命令来逐行查看程序的运行过程。常用的命令有:

  • n(ext):执行下一条语句。
  • c(ont(inue)):继续执行程序。
  • s(tep):进入当前语句的函数或方法。
  • r(eturn):执行到函数或方法的返回语句。
  • l(ist):查看当前代码块周围的代码。
  • p(rint):打印出变量的值。
  • h(elp):查看帮助文档。

例如,可以使用 n(ext) 命令逐行执行程序,并使用 p(rint) 命令查看变量的值:

> /path/to/your/code.py(4)add()
-> return result
(Pdb) n
> /path/to/your/code.py(7)<module>()
-> print(z)
(Pdb) p result
3
使用第三方工具

除了 Python 内置的调试工具之外,还有一些第三方工具可以帮助我们更加高效地调试程序。例如,我们可以使用 PyCharm 集成开发环境,在编辑器中直接进行断点调试。另外,还有一些 Python 的调试器库,例如 pudb 和 rpudb,可以帮助我们更加方便地进行断点调试。