假设你有下面的装饰师。如何将它修改为附加到一些列表中引用它所装饰的所有函数?在
def memoize(obj):
cache = obj.cache = {}
@functools.wraps(obj)
def memoizer(*args, **kwargs):
if args not in cache:
cache[args] = obj(*args, **kwargs)
return cache[args]
return memoizer
@memoize
def foo(bar):
return bar ** 3
Tags:
您可以轻松地将列表存储在decorator函数对象(
^{1}$memoize.decorated
)上:它的用途如下:
^{pr2}$作为一个补充说明,您应该考虑存储^{}s in the list ,以避免内存泄漏或对象在没有其他“真正”引用时无法释放。在
相关问题 更多 >
编程相关推荐