A simple python decorator for defining properties that only run their fget function once
Project description
A simple python decorator for defining properties that only run their fget function once.
Free software: BSD license
What?
A Python property that only calls its fget function one time. How many times have you written this code (or similar)?
def class C(object): @property def name(self): if not hasattr(self, '_name'): self._name = some_expensive_load() return self._name
I’ve written it just enough times to be annoyed enough to capture this module. The result is this:
from memoized_property import memoized_property def class C(object): @memoized_property def name(self): # Boilerplate guard conditional avoided, but this is still only called once return some_expensive_load()
Why?
I couldn’t find a pre-existing version of this on PyPI. I found one other on GitHub, https://github.com/ytyng/python-memoized-property, but it was not published to PyPI.
History
1.0.3 (2016-09-28)
Build universal wheels
Support Python 3.4, 3.5
1.0.2 (2014-05-02)
Remove dependency on six
1.0.1 (2014-01-01)
Added python 3.2 compatability
1.0.0 (2013-12-26)
First release on PyPI.