77-简单的装饰器

装饰器的简单用法:

def color(func):
    def red():
        return '33[31;1m%s33[0m' % func()
    return red

def boy():
    return "Hello boy!!!"

@color
def girl():
    return "Hello girl!!!"

if __name__ == "__main__":
    print(boy())  # 没有调用装饰器,颜色不会变的。
    hello = color(boy)  # 此种写法可以换成为hello加上@color的写法。
    print(hello())
    print(girl())  # welcome因为有装饰器,所以调用时不是调用welcome函数,
                      # 而是调用color(welcome)()
                      # color(welcome)返回red,color(welcome)()等价于red()

结果输出:

原文地址:https://www.cnblogs.com/hejianping/p/10988200.html