走进在IPython中的函数(Stepping into a function in IPython

2019-08-01 00:47发布

有没有办法踏进在IPython中一个函数的第一行。 我想象的东西,看起来像:

%step foo(1, 2)

它运行ipdb并设置断点的第一行foo

如果我现在要做到这一点我得去功能的源代码,并添加一个import ipdb; ipdb.set_trace() import ipdb; ipdb.set_trace()线。

Answer 1:

IPDB已经具备了runcall,runeval支持,因为0.7上运行,在今年早些时候。 您可以使用它,就像pdb.runcall

In [1]: def foo(a, b):
   ...:     print a + b
   ...:

In [2]: import ipdb

In [3]: ipdb.runcall(foo, 1, 2)
> <ipython-input-1-2e565fd9c4a4>(2)foo()
      1 def foo(a, b):
----> 2     print a + b
      3

ipdb>


Answer 2:

IPython的魔术,你是问现在与较新的版本中实现: https://stackoverflow.com/a/46333421/4374441

你只需要键入%debug foo(1, 2)然后s步入功能。



文章来源: Stepping into a function in IPython