paint-brush
使用 Pdb 进行 Python 调试简介经过@terieyenike
2,368 讀數
2,368 讀數

使用 Pdb 进行 Python 调试简介

经过 Teri Eyenike4m2022/08/24
Read on Terminal Reader
Read this story w/o Javascript

太長; 讀書

Python 调试器 (pdb) 是 Python 程序的交互式源代码调试器。它提供了附加功能,例如设置条件断点、逐行遍历源代码以及检查特定行及其调用堆栈的变量。本文将解释调试器工具 `pdb` 如何在测试期间和交付给用户之前检查和分析您的代码以使其符合行业标准。内置 pdb 是 Python 在安装工作工具时附带的标准库的一部分。它为您提供了在测试程序时可以使用的其他几个命令。
featured image - 使用 Pdb 进行 Python 调试简介
Teri Eyenike HackerNoon profile picture

在将应用程序部署到生产环境后,调试不应成为事后的想法。它应该在开发过程中尽可能频繁地执行,因为这样可以轻松跟踪代码错误并为开发人员修复导致其代码无法运行的问题。大多数开发人员不知道 Python 的 print 函数并没有提供开发中发生的错误的确切图片。那么,您可以使用什么来识别和修复这些错误呢?答案是调试工具!它们提高了生产力并帮助使编码过程有效。


Python 调试器 (pdb) 是 Python 程序的交互式源代码调试器。除了调试之外,它还提供了附加功能,例如设置条件断点、逐行遍历源代码以及检查特定行的变量及其调用堆栈。


本文将解释调试器工具pdb如何在测试期间和交付给用户之前检查和分析您的代码以使其符合行业标准。


先决条件

要了解调试过程,您需要具备:

  • Python安装在本地机器上
  • Python的知识


改进 Python 程序的方法

要正确调试 Python 代码,您需要了解以下提示,以帮助提高生产力和错误检查:

  • Linting:它在运行代码之前检测代码的问题。完成这项工作的一种方法是安装有助于对程序进行颜色编码的软件,这样您就可以减少错误并在 IDE(VS 代码)指出错误时快速解决它们。一种这样的工具是皮林特,并在您编码时提供建议。
  • 集成开发环境(IDE)/编辑器:特定于 Python 的 IDE,例如PyCharm或者VS 代码具有内置工具和功能,可帮助基于 PEP8 自动格式化代码,并在出现错误时突出显示您的代码。
  • 阅读错误:学习阅读 Python 程序中的代码错误将大大解决一半的问题,因为您可以在控制台中理解它们的含义。


 name = 'teri print(name)


安慰

使用 pdb 进行 Python 调试

在本节中,您将使用 Python 调试器pdb测试 Python 代码。在交互式环境中实时运行代码并解决错误。


内置的pdb模块是 Python 在安装工作工具时附带的标准库的一部分。该工具为您提供了在测试程序时可以使用的其他几个命令。让我们使用 pdb 编写一个函数。在代码编辑器中创建一个新文件app.py或您想要的任何其他名称,以.py扩展名结尾。


 import pdb def multiply_number(num1, num2): pdb.set_trace() return num1 * num2 print(multiply_number(5, 10))


上面的代码执行以下操作:

  • 导入库pdb
  • 定义一个函数multiply_number有两个参数num1num2
  • 使用set_trace方法调用库,这对pdb对象很有帮助,因为它会暂停您的程序并进入允许您在控制台中键入和测试代码的调试器模式
  • 使用 return 关键字获取参数的结果
  • 调用函数并传入数字参数


使用命令python3 <name-of-file.py>运行这个程序会进入调试器,我们可以在其中传递几个调试器命令来运行代码。检查调试器命令文档以查找您可以使用的命令的完整列表。


接下来,让我们在控制台中尝试一些命令:

键入 a 或 args 会列出当前函数 multiply_number 中使用的所有参数。



在尝试另一个命令之前,更新 app.py 文件中的代码以将字符串作为参数的一部分包含在内,以便程序在执行期间输出错误:


 # app.py import pdb def multiply_number(num1, num2): pdb.set_trace() return num1 * num2 print(multiply_number(5, 'execute'))


使用命令 python3 app.py 重新运行程序:

在控制台中输入num1num2 ,它会输出在 multiply_number 函数中传递的参数的结果。



您可以尝试的其他命令包括文档中的下一步、继续等。


最后,一旦pdb识别出代码中的错误及其发生的行号,您就可以返回代码并通过更正错误并使用正确的参数来清理它,以便程序运行。


注意: pdb模块用于开发期间的测试,而不是生产。在部署之前将其删除。

结论

本文将指导您在尝试修复代码和识别错误时采用最佳实践。使用该方法比打印功能更好,因为它有更多功能可以帮助您提高代码质量。


学到更多