Donc j'ai essayé de jouer avec sys.getrecursionlimit()
y sys.setrecursionlimit()
méthodes. Par défaut, la limite de récursion était 3000
.
J'ai essayé de le vérifier en utilisant ce code :
def recursive(n):
print(n)
recursive(n+1)
recursive(0)
Il imprime les chiffres à 2979
il retarde d'une seconde, imprime 2980
puis relance le RecursionError
RecursionError: maximum recursion depth exceeded while calling a Python object
Je sais que l'erreur devrait être soulevée lorsqu'elle dépasse la limite de récursion que sys.getrecursionlimit()
retourne, mais il ne
Il semble qu'il le fasse toujours 20 fois avant la limite de récursivité.
J'ai aussi essayé ceci :
sys.setrecursionlimit(100)
def recursive(n):
print(n)
recursive(n+1)
recursive(0)
Il fait toujours la même chose, il imprime tous les nombres à 79
retarde d'une seconde, imprime 80
et soulève ensuite la même erreur
Pourquoi il lève l'erreur avant qu'il ne dépasse la limite réelle de récursion que nous avons fixée ou obtenue par sys.getrecursionlimit()
?