次のコードを検討してください。
def inner(a):
if a == 75:
raise RuntimeError()
return a**2
def outer():
results = []
for a in range(100):
results.append(inner(a))
return results
outer()
IPython では、例外が発生した後、%debug
ライン マジックによって Python デバッガーが のスコープで開かれますinner()
。
In [4]: %debug
> <ipython-input-3-eff43b15b2ef>(3)inner()
2 if a == 75:
----> 3 raise RuntimeError()
4 return a**2
ipdb> a
a = 75
ipdb> results
*** NameError: name 'results' is not defined
outer()
これまでに生成された結果を保存するために、(i)pdb にスコープに入るように指示するにはどうすればよいですか?