Ottieni e aumenta la massima profondità di ricorsione in Python
-
Usa la funzione
getrecursionlimit()
per ottenere la massima profondità di ricorsione in Python -
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