On Sun, 09 Oct 2005 02:49:38 -0700, Paul Rubin wrote: >> I'm curious... where does cache live after you use cache_function to >> memoize some function? It doesn't appear to be an attribute of the newly >> memoized function, nor does it look like a global variable. > > It's in the closure returned by cache_function.
What's a closure? Googling on define:closure isn't very useful. There are a *lot* of different meanings for closure, none of them to do with programming. No, wait, I tell a lie -- Wikipedia to the rescue again: http://en.wikipedia.org/wiki/Closure_(programming) I notice that type(some_closure) and type(ordinary_function) both return the same result, <type 'function'>. I also notice that both the closure and ordinary functions have an attribute "func_closure". Is there a way to tell which is a closure and which is not? In my tests, the ordinary function has func_closure == None, but I don't know if that will always be the case of just for my tests. If I wanted to inspect the value of cache, where would I find it? In other words, if I say some_closure.SOMETHING I would get cache... what should SOMETHING be set to? That assumes that cache can be seen in this way. If it can't, is this a way to create "really private" variables in Python? -- Steven. -- http://mail.python.org/mailman/listinfo/python-list