ipython で関数の最初の行にステップ インする方法はありますか。次のようなものを想像します。
%step foo(1, 2)
これが実行ipdb
され、 の最初の行にブレークポイントが設定されますfoo
。
今すぐこれを行いたい場合は、関数のソース コードに移動してimport ipdb; ipdb.set_trace()
行を追加する必要があります。
ipdb は、今年初めの 0.7 以降、runcall、runeval、および run をサポートしています。次のように使用できます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
ステップインできます。