Если вам часто необходимо изменить предел рекурсии (например, при решении головоломок программирования), вы можете определить простой менеджер контекста следующим образом:
import sys
class recursionlimit:
def __init__(self, limit):
self.limit = limit
self.old_limit = sys.getrecursionlimit()
def __enter__(self):
sys.setrecursionlimit(self.limit)
def __exit__(self, type, value, tb):
sys.setrecursionlimit(self.old_limit)
Затем, чтобы позвонить с пользовательским пределом, который вы можете сделать:
with recursionlimit(1500):
print(fib(1000, 0))
При выходе из тела оператора with
предел рекурсии будет восстановлен до значения по умолчанию.