Lazy Attribute

Stefan H. Holek stefan at epy.co.at
Fri Nov 16 07:46:01 EST 2012


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

>> Subject: Re: Lazy Attribute
>> From: stefan at epy.co.at
>> Date: Fri, 16 Nov 2012 11:45:32 +0100
>> To: python-list at python.org
>> 
>> 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. http://lazy.readthedocs.org/en/latest/
> 
> @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

-- 
Stefan H. Holek
stefan at epy.co.at




More information about the Python-list mailing list