123456789101112 |
- class lazy_property():
- """Defines a property whose value will be computed only once and as needed.
- This can only be used on instance methods.
- """
- def __init__(self, func):
- self._func = func
- def __get__(self, obj_self, cls):
- value = self._func(obj_self)
- setattr(obj_self, self._func.__name__, value)
- return value
|