Python Language Augmenter la profondeur de récursivité maximale


Exemple

Il y a une limite à la profondeur de la récursion possible, qui dépend de l'implémentation de Python. Lorsque la limite est atteinte, une exception RuntimeError est déclenchée:

RuntimeError: Maximum Recursion Depth Exceeded

Voici un exemple de programme qui provoquerait cette erreur:

def cursing(depth):
  try:
    cursing(depth + 1) # actually, re-cursing
  except RuntimeError as RE:
    print('I recursed {} times!'.format(depth))
cursing(0)
# Out: I recursed 1083 times!

Il est possible de modifier la limite de profondeur de récursion en utilisant

sys.setrecursionlimit(limit) 

Vous pouvez vérifier quels sont les paramètres actuels de la limite en exécutant:

sys.getrecursionlimit()

Utiliser la même méthode ci-dessus avec notre nouvelle limite que nous obtenons

sys.setrecursionlimit(2000)
cursing(0)
# Out: I recursed 1997 times!

À partir de Python 3.5, l’exception est une erreur Récursion, dérivée de RuntimeError.