Wie Sie die maximale Rekursionstiefe in Python erhalten und erhöhen
-
Verwenden Sie die
getrecursionlimit()
Funktion, um die maximale Rekursionstiefe in Python zu erhalten -
Verwenden Sie die Funktion
setrecursionlimit()
, um die maximale Rekursionstiefe in Python festzulegen
Dieser Artikel stellt Methoden vor, um die maximale Rekursionstiefe in Python mit den Funktionen getrecursionlimit()
und setrecursionlimit()
zu erhalten und zu erhöhen.
Verwenden Sie die getrecursionlimit()
Funktion, um die maximale Rekursionstiefe in Python zu erhalten
Was ist Rekursion? Rekursion ist der Prozess der Wiederholung.
In Python haben wir einige Grenzen für rekursive Funktionen. Sie gibt an, wie oft sich die Funktion wiederholt. Wir können die Funktion getrecursionlimit()
verwenden, um die maximale Rekursionstiefe zu erhalten. Die korrekte Syntax lautet:
sys.getrecursionlimit()
Diese Methode akzeptiert keine Parameter.
Das Programm unten zeigt, wie wir diese Methode verwenden können, um die maximale Rekursionstiefe in Python zu erhalten.
import sys
print(sys.getrecursionlimit())
Ausgabe:
3000
Verwenden Sie die Funktion setrecursionlimit()
, um die maximale Rekursionstiefe in Python festzulegen
Wenn die Rekursionstiefe die in Python voreingestellte maximale Rekursionstiefe überschreitet, wird ein RecursionError
ausgelöst. Sehen wir uns das folgende Beispiel an.
def Test(i):
if i > 0:
return Test(i - 1) + 1
else:
return 0
Test(5000)
Ausgabe:
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
Wir müssen die maximale Rekursionstiefe erhöhen, um das obige Problem zu lösen. Wir verwenden die Funktion setrecursionlimit()
, um die Rekursionsgrenze zu setzen. Die korrekte Syntax zur Verwendung dieser Funktion lautet wie folgt:
sys.setrecursionlimit(limit)
Diese Methode akzeptiert nur einen Parameter. Die Einzelheiten des Parameters sind wie folgt:
Parameter | Beschreibung | |
---|---|---|
limit |
obligatorisch | Das ist die Grenze, die wir setzen wollen. |
Das Programm unten zeigt, wie wir diese Methode verwenden können, um die Rekursionsgrenze in Python zu setzen.
import sys
sys.setrecursionlimit(5000)
print(sys.getrecursionlimit())
Ausgabe:
5000