何时使用Python调试器

cry*_*ice 5 python debugging

由于Python是一种动态的解释语言,因此您无需在运行代码之前编译代码.因此,只需编写代码,运行代码,查看发生的问题并修复它们就非常容易.使用热键或宏可以使这非常快.

因此,因为很容易立即看到程序的输出和可能发生的任何错误,所以我还没有使用调试工具.有什么情况可能要求使用真正的调试器与我目前使用的方法?

在我陷入困境之前我想知道,因为我不知道如何解决这个问题而感到沮丧.

S.L*_*ott 8

在30年的编程中,我已经使用了4次调试器.所有四次都是读取core从C程序生成的文件崩溃,以找到埋在那里的追溯信息.

即使在编译语言中,我也不认为调试器有多大帮助.许多人喜欢调试器,使用它们有一些原因,我敢肯定,或者人们不会对它们表现出如此的爱和关怀.

这就是重点 - 软件就是知识捕获.

是的,它必须运行.然而,更重要的是,软件具有意义.

这不是对使用调试器的起诉.但是,我发现那些依赖于调试的人有时会生成看起来很奇怪的代码,而且对于它的含义也没有很好的理由.他们只能说"它可能是一个黑客,但它有效."

我对调试器的建议是"不要打扰".

"但是,如果我完全难倒怎么办?" 你问,"那我应该学习调试器吗?" 完全被什么困扰?语言?Python太简单了,无法彻底迷惑.有些图书馆?也许.

这是你做的 - 有或没有调试器.

  1. 你有源,阅读它.
  2. 你写小测试来锻炼图书馆.如果可能,使用交互式shell.[所有非常好的库似乎都使用交互式Python模式显示其功能 - 我努力实现这种紧密,清晰的简单性.]
  3. 你有源,添加打印功能.

  • 好吧,我不确定在调试器和交互式控制台之间画线的确切位置.在我的书中,无论是直接在控制台中调用代码段还是在使用pdb的关键点启动控制台,它都是"弄清楚为什么这段代码不会做它应该做的事情"的连续统一体.我碰巧喜欢第二种选择,因为我遇到的那种错误更好,但是对你有用的东西...... (2认同)

Sri*_*yer 7

我使用pdb进行基本的python调试.我使用它的一些情况是:

  • 当你有一个循环迭代超过100,000个条目并希望在特定点中断时,它变得非常有用.(条件中断)
  • 跟踪别人代码的控制流程.
  • 使用调试器总是比使用打印机丢弃代码更好.
  • 通常情况下,可能会有多个故障点导致错误,所有情况在第一次看起来都不明显.因此,你寻找明显的地方,如果没有什么是错的,你继续前进并添加更多的打印..调试器可以节省你的时间在这里,你不需要添加打印并再次运行.


Joh*_*kin 6

通常当错误被隐藏在某些功能中时,我不确切知道究竟是什么或在哪里.要么插入几十个log.debug()电话,然后必须将它们取出,或者只是放入:

import pdb
pdb.set_trace ()
Run Code Online (Sandbox Code Playgroud)

然后运行该程序.调试器将在到达该点时启动并给我一个完整的REPL来进行调整.