有没有办法踏进在IPython中一个函数的第一行。 我想象的东西,看起来像:
%step foo(1, 2)
它运行ipdb
并设置断点的第一行foo
。
如果我现在要做到这一点我得去功能的源代码,并添加一个import ipdb; ipdb.set_trace()
import ipdb; ipdb.set_trace()
线。
有没有办法踏进在IPython中一个函数的第一行。 我想象的东西,看起来像:
%step foo(1, 2)
它运行ipdb
并设置断点的第一行foo
。
如果我现在要做到这一点我得去功能的源代码,并添加一个import ipdb; ipdb.set_trace()
import ipdb; ipdb.set_trace()
线。
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>
IPython的魔术,你是问现在与较新的版本中实现: https://stackoverflow.com/a/46333421/4374441
你只需要键入%debug foo(1, 2)
然后s
步入功能。