[Python-Dev] Re: PEP 318 bake-off? (original) (raw)

Josiah Carlson jcarlson at uci.edu
Sat Apr 3 19:37:55 EST 2004


########## # # Decorations # class Memoized(dict): """ A function wrapper to cache the results of functions that take a long time to complete, like database querries or intensive mathematical computations.

To wipe the cache, just call m.clear() """ def init(self, func, init={}): """ Accepts the function to be memoized and an optional initial dictionary of known results. """ dict.init(self, init) self.func = func def call(self, *args, **kwds): key = (args, tuple(kwds.items())) # hope everything's hashable... return ( self.get(key) or self.setdefault(key, self.func(*args, **kwds)) )

I believe that with standard dictionaries, kwds is not guaraneed to have any particular order. Perhaps sorting kwds.items() makes sense?



More information about the Python-Dev mailing list