修饰器的作用是:在function执行后,如果需要对函数的输出结果进行进一步的加工,则可以为函数增加一个修饰器

# 以做汉堡为例
def bread(fun):
    print('(---------)')
    fun()
    print('(============)')
def vegetable(fun):
    print('~~~~~~~~~~~~~')
    fun()
    print('~~~~~~~~~~~~')
def beef():
    print('[][][][][][]')
#做汉堡
bread(vegetable(beef))

加上修饰器

def bread(fun):
    def a():
        print('(---------)')
        fun()
        print('(============)')
    return a    #注意这里a不带(),如果带小括号表示立即执行
def vegetable(fun):
    def a():
        print('~~~~~~~~~~~~~')
        fun()
        print('~~~~~~~~~~~~')
    return a  #注意这里a不带(),如果带小括号表示立即执行
@bread
@vegetable #修饰器执行顺序为由内而外,和函数近的修饰器先执行
def beef():
    print('[][][][][][]')
beef()
#(---------)
#~~~~~~~~~~~~~
#[][][][][][]
#~~~~~~~~~~~~
#(============)

修饰器的特点,一次编写,调用只需要加个@funciton,调用方便,一般用于给函数通用的步骤加装饰器

posted on 2020-02-26 14:45  盈盈的月儿  阅读(271)  评论(0编辑  收藏  举报