Ошибка с setrecurtionlimit() Python
Всем привет! Попробовал написать рекурсивную функцию для расчета факториала.
import sys
sys.setrecursionlimit(60)
def factorial(n):
if n == 0:
return 1
else:
return n*factorial(n-1)
Не могу понять, как работает sys.setrecursionlimit(). При вызове функции
factorial(30) выдает ошибку RecursionError: maximum recursion depth exceeded. Почему так, если предел рекурсии был задан 60, а вызвал функцию с глубиной рекурсии 30?
А если поменять в функции sys.setrecursionlimit(200), и вызвать функцию factorial(195), то выдаёт другую ошибку: RecursionError: maximum recursion depth exceeded in comparison
Подскажите, пожалуйста, отчего так и как правильно ограничить глубину рекурсии? Спасибо.