你的代码中是否有东西可以启动一个交互式解释器(在python中)

时间:2011-06-09 02:25:48

标签: python debugging

这个想法是能够正常运行代码,除非它在到达特定方法调用时将在给定范围内启动交互式解释器。类似于在断点处停止以运行代码。

理想情况下,如果您已经在像ipython这样的解释器中,它将返回到该解释器,除了访问解释器范围之外的当前范围。

3 个答案:

答案 0 :(得分:5)

查看code模块。

以下是一个例子:

import code
a = 1
b = 2
code.interact(local=locals())

输出:

Python 2.7 (r27:82500, Nov 10 2010, 22:46:43) 
[GCC 4.2.1 (Apple Inc. build 5664)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> a
1
>>> b
2
>>>

答案 1 :(得分:2)

你想要code

答案 2 :(得分:1)

而不是从运行python(没有脚本文件)或从ipython获得REPL,你想要开始debugger吗?

def example(a, b, c):
  a.apple(b.blah() + c)

  import pdb
  pdb.set_trace()

  c.continuing_on()
  while inspecting(this.code()) in the_debugger:
    print "hooray"

您可以从pdb执行任意代码,但在继续运行现有代码时也可以使用方便的命令进行检查。