[Python-Dev] Re: PEP 318 bake-off? (original) (raw)
Josiah Carlson jcarlson at uci.edu
Sat Apr 3 19:37:55 EST 2004
- Previous message: [Python-Dev] Re: PEP 318 bake-off?
- Next message: [Python-Dev] Re: PEP 318 bake-off?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
########## # # 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?
- Josiah
- Previous message: [Python-Dev] Re: PEP 318 bake-off?
- Next message: [Python-Dev] Re: PEP 318 bake-off?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]