A
Andrea Crotti
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..
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..