Python 设计模式: 装饰器模式(decorator pattern)

装饰器模式说的是在不修改原有对象的基础上,给这个对象增加新的职责/功能。

举个栗子:

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