Python中的最大递归层数
递归的最大层数是多少?我该如何在Python中更改这个限制?
2 个回答
6
我想加个代码例子:
import sys
sys.setrecursionlimit(100000)
正如Lizard提到的,默认的递归限制是1000,这是有原因的,而且这个警告很重要。尝试把递归限制调高到处理fibonacci(10000)(也就是 return f(n-1) + f(n-2))时,我的Python开发环境直接崩溃了。没有收到“达到递归深度”的警告,并不意味着问题就解决了。
32
默认情况下,递归的深度限制是1000层,你可以通过在sys
模块中使用setrecursionlimit
函数来改变这个限制。
警告:
要注意,如果你把这个限制调得太高,有些操作系统可能会出现问题,因为它们的堆栈空间有限。