我想通过以下代码来实验性地确定Python的最大递归深度:
def recursive(i):
i = i + 1
try:
recursive(i)
except RuntimeError:
print 'max depth == %d' % i
exit(0)
recursive(0)
但是当我运行它时,出现了这个问题:
[ hive ~ ]$ python recursive.py
max depth == 999
max depth == 998
max depth == 997
max depth == 996
max depth == 995
max depth == 994
当程序遇到第一次 RuntimeError
错误时,为什么它不会立即退出,而是继续运行了5个更多的 recursive()
调用?
exit()
不是sys.exit
。它是由site
模块设置的可调用的exit()
。 - Martijn Pieterssite
模块中的Python函数,旨在用于交互式解释器中。 - Martijn Pieters