У меня есть один вопрос о 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.
Почему это так?