Ошибка с 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

Подскажите, пожалуйста, отчего так и как правильно ограничить глубину рекурсии? Спасибо.


Ответы (0 шт):