遞迴限制
可能的遞迴深度是有限的,這取決於 Python 的實現。達到限制時,將引發 RuntimeError 異常:
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
。