77-简单的装饰器

装饰器的简单用法:

def color(func):
    def red():
        return '\033[31;1m%s\033[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()

结果输出:

 

posted @ 2019-06-07 14:54  hejp  阅读(108)  评论(0编辑  收藏  举报