你怎么能在Python中增加最大递归深度?

时间:2015-11-17 13:02:45

标签: python recursion stack-overflow

今天类中递归和堆栈溢出的有趣主题我想知道是否有任何方法可以增加Python中的最大递归深度?写了一个快速函数,用于使用递归找到n的阶乘:

def factorial(n):
    if n == 1:
        return n
    else:
        return n * factorial(n-1)

它可以应对阶乘(994)而不是阶乘(995)。给出的错误是:

RuntimeError: maximum recursion depth exceeded in comparison

显然可以迭代地找到更高的阶乘但是,为了论证和阴谋,最大递归深度可以增加吗?

2 个答案:

答案 0 :(得分:10)

import sys

sys.setrecursionlimit(2000)

答案 1 :(得分:5)

import sys

iMaxStackSize = 5000
sys.setrecursionlimit(iMaxStackSize)