Op Wednesday 29 Apr 2015 09:02 CEST schreef Ian Kelly: > On Wed, Apr 29, 2015 at 12:06 AM, Cecil Westerhof <ce...@decebal.nl> wrote: >> Op Monday 27 Apr 2015 22:35 CEST schreef Albert-Jan Roskam: >>> 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). > > It's useful to keep in mind which case it is that you're trying to > optimize. The expensive case for exceptions is when one actually > gets raised. A try that doesn't raise an exception is pretty cheap, > probably cheaper than looking up the key in the dict twice as the > code you linked does. Compare:
It is not only performance wise, I find the code without the try also better looking. But that is very personally I suppose. -- Cecil Westerhof Senior Software Engineer LinkedIn: http://www.linkedin.com/in/cecilwesterhof -- https://mail.python.org/mailman/listinfo/python-list