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