增加最大递归深度

可能的递归深度是有限的,这取决于 Python 的实现。达到限制时,将引发 RuntimeError 异常:

RuntimeError: Maximum Recursion Depth Exceeded

以下是导致此错误的程序示例:

def cursing(depth):
  try:
    cursing(depth + 1) # actually, re-cursing
  except RuntimeError as RE:
    print('I recursed {} times!'.format(depth))
cursing(0)
# Out: I recursed 1083 times!

可以通过使用来更改递归深度限制

sys.setrecursionlimit(limit) 

你可以通过运行来检查限制的当前参数:

sys.getrecursionlimit()

使用我们的新限制运行上面的相同方法

sys.setrecursionlimit(2000)
cursing(0)
# Out: I recursed 1997 times!

从 Python 3.5 开始,异常是一个 RecursionError,它是从 RuntimeError 派生的。