装饰器模式说的是在不修改原有对象的基础上,给这个对象增加新的职责/功能。
举个栗子:
def max_age(*args):
time.sleep(3)
return max(args)
def cache_decorator(func):
cache = {}
def _wrapper(*args):
if args in cache:
return cache[args]
cache[args] = result = func(*args)
return result
return _wrapper
cached_max_age = cache_decorator(max_age)
cached_max_age(1, 2, 3, 0)
cached_max_age(1, 2, 3, 0)
Comments