如何增加 Python 中的最大递归深度?
How could you increase the maximum recursion depth in Python?
今天 class 中的递归和堆栈溢出的有趣话题,我想知道是否有任何方法可以增加 Python 中的最大递归深度?编写了一个使用递归查找 n 的阶乘的快速函数:
def factorial(n):
if n == 1:
return n
else:
return n * factorial(n-1)
它可以处理factorial(994) 但不能处理factorial(995)。给出的错误是:
RuntimeError: maximum recursion depth exceeded in comparison
显然可以迭代找到更高的阶乘,但是为了争论和阴谋,最大递归深度可以增加吗?
import sys
sys.setrecursionlimit(2000)
import sys
iMaxStackSize = 5000
sys.setrecursionlimit(iMaxStackSize)
今天 class 中的递归和堆栈溢出的有趣话题,我想知道是否有任何方法可以增加 Python 中的最大递归深度?编写了一个使用递归查找 n 的阶乘的快速函数:
def factorial(n):
if n == 1:
return n
else:
return n * factorial(n-1)
它可以处理factorial(994) 但不能处理factorial(995)。给出的错误是:
RuntimeError: maximum recursion depth exceeded in comparison
显然可以迭代找到更高的阶乘,但是为了争论和阴谋,最大递归深度可以增加吗?
import sys
sys.setrecursionlimit(2000)
import sys
iMaxStackSize = 5000
sys.setrecursionlimit(iMaxStackSize)