Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #32572
| Date | 2012-11-01 21:38 +0000 |
|---|---|
| From | Andrea Crotti <andrea.crotti.0@gmail.com> |
| Subject | lazy properties? |
| Newsgroups | comp.lang.python |
| Message-ID | <mailman.3165.1351806008.27098.python-list@python.org> (permalink) |
Seeing the wonderful "lazy val" in Scala I thought that I should try to
get the following also in Python.
The problem is that I often have this pattern in my code:
class Sample:
def __init__(self):
self._var = None
@property
def var(self):
if self._var is None:
self._var = long_computation()
else:
return self._var
which is quite useful when you have some expensive attribute to compute
that is not going to change.
I was trying to generalize it in a @lazy_property but my attempts so far
failed, any help on how I could do that?
What I would like to write is
@lazy_property
def var_lazy(self):
return long_computation()
and this should imply that the long_computation is called only once..
Back to comp.lang.python | Previous | Next | Find similar | Unroll thread
lazy properties? Andrea Crotti <andrea.crotti.0@gmail.com> - 2012-11-01 21:38 +0000
csiph-web