没有交互式控制台,如何调试

时间:2013-08-05 20:26:49

标签: python debugging

作为一名自学成才的程序员,我学会了使用交互式控制台进行调试,该控制台在构建/运行脚本时将所有变量保存在内存中。但是,我注意到在IDE中进行调试的压倒性趋势(并且,我认为CLI +编辑器解决方案就此而言)是在一个地方构建脚本并提供单独的控制台“沙箱”类型区域,只有在您复制时才保留变量/粘贴你的代码。

如何在没有交互式控制台的情况下进行调试?任何人都可以列出一些可以帮助我成为更好的程序员/调试器的调试步骤吗?

目前,这是我所做的非常简化的版本:

  1. 写一些伪代码(有时)
  2. 应该工作
  3. 的编辑器中编写一些代码
  4. 运行/构建脚本
  5. 检查stdout是否有错误
  6. 如果没有错误,那么7。
  7. 如果出现错误,则在修复违规代码后返回2。
  8. 在控制台中键入变量名称以验证它们是否与我相似 预料。
  9. 冲洗并重复,直至其按预期工作。

5 个答案:

答案 0 :(得分:8)

执行此操作的最佳方法是write tests。这将为您自动执行步骤3到7。它还可以防止在更改其他代码时发生回归。

答案 1 :(得分:1)

您可以轻松使用q模块https://pypi.python.org/pypi/q

<强> xyxy.py

import q
do_something()
q.d() #this will open interactive shell

def f():
    do_something()
    q.d() #open console here with access to all local variables of f

你也可以使用自动化测试(内置单元测试模块或鼻子测试或其他东西)

答案 2 :(得分:1)

使用一个像样的python IDE - 那里有很多东西,你可以通过悬停或添加监视来检查变量,然后进入一个上下文控制台,在那里你可以在断点的上下文中与你的代码进行交互。

答案 3 :(得分:0)

事实证明,至少PyCharm有一个交互式控制台,默认键盘映射(在Mac上)是option-shift-E。然后你的变量被加载到内存中。但是,上面的建议是更好的编程实践。

答案 4 :(得分:0)

在问题代码区域之间使用打印语句...否则,只需下载一个好的IDE