web-dev-qa-db-ja.com

Pythonで最大再帰深度をどのように増やすことができますか?

今日のクラスでの再帰とスタックオーバーフローの興味深いトピックですが、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

明らかに、より高い階乗を繰り返し見つけることができますが、議論と陰謀のために、最大再帰深度を増やすことができますか?

7
Rob Murray
import sys

sys.setrecursionlimit(2000)
12
Ayush
import sys

iMaxStackSize = 5000
sys.setrecursionlimit(iMaxStackSize)