增加最大遞迴深度

可能的遞迴深度是有限的,這取決於 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 派生的。