On Fri, Jul 29, 2011 at 5:01 PM, Ian Kelly <ian.g.ke...@gmail.com> wrote: > On Mon, Jul 25, 2011 at 11:46 AM, Jack Bates <ms...@freezone.co.uk> wrote: >> How can you get a descriptor to return an identical value, each time >> it's called with the same "instance" - without leaking memory?
Oops, that should have been: class MyDescriptor(object): def __get__(self, instance, owner): try: return instance.__cached_value[self] except AttributeError: instance.__cached_value = {self: get_value(instance, owner)} except KeyError: instance.__cached_value[self] = get_value(instance, owner) return instance.__cached_value[self] class MyClass(object): my_attribute = MyDescriptor() -- http://mail.python.org/mailman/listinfo/python-list