cached_property
首先,运行取自Daniel Roy Greenfeld
的文章 cached-property: Don’t copy/paste code 的一段代码:
import time
class cached_property(object):
def __init__(self, func):
self.__doc__ = getattr(func, '__doc__')
self.func = func
def __get__(self, instance, owner):
if instance is None:
return self
value = instance.__dict__[self.func.__name__] = self.func(instance)
return value
class SlowClass(object):
@cached_property
def very_slow(self):
time.sleep(1