Beispiel: Fibonaci rekursive Funktion mit Memoize Decorator. Beim Aufruf von function helper gibt es kein Argument. Wenn der Funktions-Helfer so definiert ist, dass er ein Argument x annimmt, erwarte ich, dass die Funktion mit einem Argument aufgerufen wird. Ich würde gerne verstehen, warum Syntax wie es ist?Warum gibt es kein Argument beim Zurückgeben der Funktion in einem Decorator.
def memoize(f):
memo = {}
def helper(x):
if x not in memo:
memo[x] = f(x)
return memo[x]
return helper
@memoize
def fib(n):
if n == 0:
return 0
elif n == 1:
return 1
else:
return fib(n-1) + fib(n-2)
print(fib(40))