Lazy Attribute

Stefan H. Holek stefan at
Fri Nov 16 13:46:01 CET 2012

On 16.11.2012, at 11:54, Andriy Kornatskyy wrote:

>> Subject: Re: Lazy Attribute
>> From: stefan at
>> Date: Fri, 16 Nov 2012 11:45:32 +0100
>> To: python-list at
>> On 16.11.2012, at 11:29, Steven D'Aprano wrote:
>>> I'm very vaguely leaning towards this as the least-worst solution to
>>> invalidating the cached value:
>>> refresh(obj, 'attr') # pass the instance and the name
>> This it exactly how lazy handles invalidation.
> @property is a solution to evaluate something that is dynamic. @attribute is good for immutable objects. Even if we assume refresh is a good idea... how I would know when it is valid to `refresh`? What is criteria?
> Andriy

I had to implement invalidation anyway in order to write tests. I decided to expose the mechanism to keep users from having to invent their own SHOULD the need arise. I was not advocating invalidation in any way with my reply. All I wanted was to confirm the "least bad" solution. ;-)


Stefan H. Holek
stefan at

More information about the Python-list mailing list