1 # -*- coding: utf-8 -*-
3 __author__
= 'Daniel Greenfeld'
4 __email__
= 'pydanny@gmail.com'
8 class cached_property(object):
9 """ A property that is only computed once per instance and then replaces
10 itself with an ordinary attribute. Deleting the attribute resets the
13 def __init__(self
, func
):
14 self
.__doc
__ = getattr(func
, '__doc__')
17 def __get__(self
, obj
, cls
):
20 value
= obj
.__dict
__[self
.func
.__name
__] = self
.func(obj
)