Re:A few things to remember while coding in Python
by iki23 on Sunday May 20, 2012 @05:23AM
(#3998373)
Good coverage. I use it quite often for cache dictionary, it's much simpler API and overall code, than creatng a new class for it. Demo snippet from effbot's site:
def calculate(a, b, c, memo={}):
try:
value = memo[a, b, c] # return already calculated value
except KeyError:
value = heavy_calculation(a, b, c)
memo[a, b, c] = value # update the memo dictionary
return value
Re:A few things to remember while coding in Python
by ollysb on Sunday May 20, 2012 @12:09PM
(#3999129)
This seems a bit leaky. You're exposing the caching mechanism in the method signature(yeah, ok, in practice it's unlikely to be a problem).
Re:A few things to remember while coding in Python
by anthonyb on Monday May 21, 2012 @06:35PM
(#4005244)
The other option is to create your own cache object and pass that in (and around, if it's a recursive function). Of course, in Python pretty much every cache object follows the dictionary interface anyway, so it doesn't really matter. One of the benefits of duck typing :)
Basically, sometimes you do want to reuse the mutable between function calls, and in those cases it can save a fair bit of code passing it in repeatedly.