Bruno Desthuilliers wrote: > Which is easy to do with properties too. True enough. It's the caching of the return value that's the value add of course. ;)
> >> After >> it is applied, then the penalties for function call of the property and >> the computation are wiped out once the second access is requested. > > Agreed. But I wouldn't use such a scheme for mutable types - which are > still the common case. > In many cases, yeah. Though I use a lot of immutable stuff in some of my pet projects and such. ConstProperty is definitely not meant as a replacement for property, only when something constant can be derived from something else constant, especially when the derivation is expensive. >> Now, in the original example, len() might be considered too little for >> this use and should be just generated in the constructor "for free". >> OTOH, that assumes that __len__ hasn't been overridden to do something >> more complicated and time consuming. If the antecedent object is >> static, and the derivative consequent is also static, > > You mean 'immutable', I assume... Yeah, that's probably the better term. [snip] Again, I've used it quite a bit for various things and it's worked well for the sort of thing the OP was requesting. Of course, your mileage may vary. :) Cheers! Rich PS: Sorry about the weird reposts. Thunderbird chaos. -- http://mail.python.org/mailman/listinfo/python-list