У меня есть один вопрос о sys.setrecursionlimit()
из документа python:
Установите максимальную глубину стека интерпретатора 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
Почему это так?