我对以下代码片段感到困惑,它是如何工作的?它是一个装饰器,它会延迟初始化属性,然后在下一个请求中使用缓存的属性。看代码,好像总是会调用self.method?一点解释会有所帮助
class cached_property(object):
def __init__(self, method, name=None):
self.method = method
self.name = name or method.__name__
self.__doc__ = method.__doc__
def __get__(self, inst, cls):
if inst is None:
return self
result = self.method(inst)
setattr(inst, self.name, result)
return result