Op Monday 27 Apr 2015 22:35 CEST schreef Albert-Jan Roskam: > ----- Original Message ----- >> From: Peter Otten <__pete...@web.de> >> To: python-list@python.org >> Cc: >> Sent: Monday, April 27, 2015 4:28 PM >> Subject: Re: Wrote a memoize function: I do not mind feedback >> >> Cecil Westerhof wrote: >> >>> I started again with Python. In Clojure you have memoize. I >>> thought it nice to have this in Python also. So I wrote it. With a >>> Fibonacci function to show the usefulness. You can find it here: >>> https://github.com/CecilWesterhof/PythonLibrary >>> >>> I love to hear what you think of it. >>> >>> And ideas for other functionalities are welcome also. Übung macht >>> den Meister. >> >> See also: >> >> https://docs.python.org/dev/library/functools.html#functools.lru_cache >> >> A bit hard to find unless you already know it's there. > > If you Google for memoization decorator, you will easily find many > more implementations. Not 100 percent sure, but I think the LRU > cache decorator was not exactly light weight. I also like this one > from Martelli's Python Cookbook, where he uses a mutable default > argument {a dictionary} to implement memoization. I believe I went > like this: > > > def some_func(arg, _memoize={}): > try: > return _memoize[arg] > except KeyError: > result = some_expensive_operation(arg) > _memoize[arg] = result > return result
That is in a way the same as what I do, except I do not use an exception. Iunderstand it is not as expensive as it was anymore, but I do not like to use an exception (when not necessary). -- Cecil Westerhof Senior Software Engineer LinkedIn: http://www.linkedin.com/in/cecilwesterhof -- https://mail.python.org/mailman/listinfo/python-list