Ich habe vor einiger Zeit meinen eigenen Memoize decorator entworfen und hätte gerne erfahren was ihr dazu sagt. Was kann man an dem Code noch verbessern ? Danke.
Code: Alles auswählen
def memoize(steps=25):
results = {'args':[],'result':[]}
def wrapper(f):
def nf(*args,**kwargs):
if (args,kwargs) in results["args"]:
return results["result"][results["args"].index((args,kwargs))]
else:
results["args"].append((args,kwargs))
r = f(*args,**kwargs)
results["result"].append(r)
if len(results["result"]) > steps:
del results["args"][0]
del results["result"][0]
return r
nf.__name__ = f.__name__
return nf
return wrapper
Niklas