Ottieni e aumenta la massima profondità di ricorsione in Python

  1. Usa la funzione getrecursionlimit() per ottenere la massima profondità di ricorsione in Python
  2. Usa la funzione setrecursionlimit() per impostare la massima profondità di ricorsione in Python

Questo articolo introdurrà metodi per ottenere e aumentare la massima profondità di ricorsione in Python con le funzioni getrecursionlimit() e setrecursionlimit().

Usa la funzione getrecursionlimit() per ottenere la massima profondità di ricorsione in Python

Cos’è la ricorsione? La ricorsione è il processo di ripetizione.

In Python, abbiamo alcuni limiti per le funzioni ricorsive. Indica quante volte la funzione verrà ripetuta. Possiamo usare la funzione getrecursionlimit() per ottenere la massima profondità di ricorsione. La sintassi corretta è:

sys.getrecursionlimit()

Questo metodo non accetta parametri.

Il programma seguente mostra come possiamo usare questo metodo per ottenere il limite massimo di ricorsione in Python.

import sys
print(sys.getrecursionlimit())

Produzione:

3000

Usa la funzione setrecursionlimit() per impostare la massima profondità di ricorsione in Python

Se la profondità di ricorsione supera la profondità di ricorsione massima predefinita in Python, lancerà un RecursionError. Vediamo l’esempio di seguito.

def Test(i):
    if i > 0:
        return Test(i-1)+1
    else:
        return 0

Test(5000)

Produzione:

Traceback (most recent call last):
  File "C:/Test/test.py", line 7, in <module>
    Test(5000)
  File "C:/Test/test.py", line 3, in Test
    return Test(i-1)+1
  File "C:/Test/test.py", line 3, in Test
    return Test(i-1)+1
  File "C:/Test/test.py", line 3, in Test
    return Test(i-1)+1
  [Previous line repeated 1021 more times]
  File "C:/Test/test.py", line 2, in Test
    if i > 0:
RecursionError: maximum recursion depth exceeded in comparison

Dobbiamo aumentare la profondità massima di ricorsione per risolvere il problema di cui sopra. Usiamo la funzione setrecursionlimit() per impostare il limite di ricorsione. La sintassi corretta per utilizzare questa funzione è la seguente:

sys.setrecursionlimit(limit)

Questo metodo accetta un solo parametro. Il dettaglio del suo parametro è il seguente:

Parametro Descrizione
limit obbligatorio È il limite che vogliamo porre.

Il programma seguente mostra come possiamo usare questo metodo per impostare il limite di ricorsione in Python.

import sys
sys.setrecursionlimit(5000)
print(sys.getrecursionlimit())

Produzione:

5000