Python中的最大递归层数

27 投票
2 回答
9454 浏览
提问于 2025-04-16 01:34

递归的最大层数是多少?我该如何在Python中更改这个限制?

2 个回答

6

我想加个代码例子:

import sys
sys.setrecursionlimit(100000)

正如Lizard提到的,默认的递归限制是1000,这是有原因的,而且这个警告很重要。尝试把递归限制调高到处理fibonacci(10000)(也就是 return f(n-1) + f(n-2))时,我的Python开发环境直接崩溃了。没有收到“达到递归深度”的警告,并不意味着问题就解决了。

32

默认情况下,递归的深度限制是1000层,你可以通过在sys模块中使用setrecursionlimit函数来改变这个限制。

警告:

要注意,如果你把这个限制调得太高,有些操作系统可能会出现问题,因为它们的堆栈空间有限。

撰写回答