Ipythonの関数の最初の行にステップインする方法はありますか?私は次のようになると思います:
_%step foo(1, 2)
_
これはipdb
を実行し、foo
の最初の行にブレークポイントを設定します。
これを今実行したい場合は、関数のソースコードに移動し、import ipdb; ipdb.set_trace()
行を追加する必要があります。
ipdbはruncall、runeval、およびrunをサポートしており、今年の初めに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
と入力するだけです。