
On Fri, 1 May 2009 09:27:13 am George Sakkis wrote:
I think It's clear by now that caching in the general case is not trivial, both in terms of API and implementation. That makes the original request - caching properties only - more appealing since most problems go away if there are no parameters.
In the simplest case where cache expiration is not supported, cachedproperty can be a 7-line decorator: [snip]
In my opinion, properties aren't special enough to need a special cachedproperty() decorator. Especially not get-only properties that never expire, since they're just a function taking a single argument that returns a constant result. A generic cache that runs on any function should be sufficient, and more useful than one that is specific to properties. Properties are not the only application for caching expensive function calls that never change. -- Steven D'Aprano