Eine Funktion ist wie eine Box, die einige verwandte Funktionen zum Aufrufen in eine Funktion packt. Innerhalb einer Funktion können Sie andere Funktionen oder die Funktion selbst aufrufen.
Wenn sich eine Funktion intern aufruft, handelt es sich um eine rekursive Funktion.
Nehmen wir ein einfaches Beispiel.
In der Mathematik kennen wir die Fakultät von 100, 100!=1009998...321.
Zerlegt, 100!=10099!,99!=9998!,98!=98*97!...
Dann definieren wir eine Funktion zur Berechnung der Fakultät:
def fact(n): return n*fact(n-1)
Die obige Funktion scheint eine Zahl zu sein, die ständig mit einer Zahl kleiner als 1 multipliziert wird, aber nicht stoppt. Daher müssen wir die obige Funktion so ändern, dass sie nach der Berechnung anhalten kann, wenn n = 1 ist.
def fact(n): if n==0: return 1 else: return n*fact(n-1)
Rekursive Funktionen können auch in einer Schleife implementiert werden. Die rekursive Funktionslogik ist jedoch relativ einfach. Bei der Verwendung rekursiver Funktionen sollte jedoch darauf geachtet werden, einen Stapelüberlauf durch zu viele rekursive Funktionsaufrufe zu verhindern.