让我们考虑一下上面的小脚本。
def d(n):
if n==0:
return 0
else:
return d(n−1)
print d(3)
有没有工具可以像调试器一样报告每个步骤的操作?
您可以使用Winpdb-一个独立于平台的Python调试器来逐步完成脚本的执行,同时在每个步骤中查看每个变量的值,并遵循指令流。
另一种选择是使用跟踪模块。
$ python -m trace --trace test.py
--- modulename: threading, funcname: settrace
threading.py(90): _trace_hook = func
--- modulename: t, funcname: <module>
t.py(1): def d(n):
t.py(6): print d(3)
--- modulename: t, funcname: d
t.py(2): if n==0:
t.py(5): return d(n-1)
--- modulename: t, funcname: d
t.py(2): if n==0:
t.py(5): return d(n-1)
--- modulename: t, funcname: d
t.py(2): if n==0:
t.py(5): return d(n-1)
--- modulename: t, funcname: d
t.py(2): if n==0:
t.py(3): return 0
0