我很难理解这个回忆录装潢师
def method(func):
"""
Decorator for caching parameterless bound method
"""
key = '_memoize_%s' % func.__name__
@wraps(func)
def wrapper(self):
if not hasattr(self, key):
setattr(self, key, func(self))
return getattr(self, key)
return wrapper
假设我有:
^{pr2}$它是否将一个键_memoize_add
附加到元组(x,y),因为这就是传递给包装器的内容。在
decorator将方法的返回值存储为私有属性。所以它只适用于类实例,而不适用于普通函数。在
decorator的
func
参数是它包装的方法,返回的wrapper
函数将被调用,而不是方法。当包装器被调用时,它的self
参数将是该类的实例,settattr
调用将把func
的结果缓存为key
命名的私有属性。之后,所有进一步的调用将返回key
属性的缓存值。在下面是一个简单的测试,演示如何使用它:
输出:
^{pr2}$相关问题 更多 >
编程相关推荐