Максимальная рекурсия Python, вопрос о sys.setrecursionlimit ()

У меня есть один вопрос о sys.setrecursionlimit ()

Из документа python docs эта функция:
Установите максимальную глубину Стек интерпретатора Python для ограничения. Этот предел предотвращает бесконечную рекурсию от переполнения стека C и сбоя Python. Максимально возможный предел зависит от платформы. Пользователю может потребоваться установить более высокий предел, если у него есть программа, требующая глубокой рекурсии, и платформа, поддерживающая более высокий предел. Это следует делать с осторожностью, поскольку слишком высокий предел может привести к сбою.

Вот мой вопрос:

Давайте возьмем эту бесполезную рекурсивную функцию:

def rec(N):
     if N==0:
         return 1
     else:
         return rec(N-1);

Теперь давайте установим максимальное значение рекурсии равным 100:

sys.setrecursionlimit(100)

Если я попробую rec (99) (100 рекурсивных вызовов), я получу:

RuntimeError: maximum recursion depth exceeded

Для вычисления rec (99) мне нужно установить предел рекурсии до 105.

Почему это так?

16
задан Diptangsu Goswami 13 November 2018 в 12:55
поделиться