装饰器01

python中的装饰器相当于java中的切面,我们可以在它之前或之后做一些其它的事

def auth(func):
    def inner(*args, **kwargs):
        print('在index函数调用之前做一些事。。。')
        ret = func(*args, **kwargs)  # 这儿的func就是index函数
        print('在index函数调用之后做一些事。。。')
        return ret

    return inner


# 给index函数添加auth这个装饰器,就相当于将index函数作为入参传给auth
@auth
def index():
    print('调用真正的index函数')

# 调用index函数
index()
在index函数调用之前做一些事。。。
调用真正的index函数
在index函数调用之后做一些事。。。

此外,还需要注意的一点就是, index函数不添加装饰器auth时,index.__name__ 等于 index ;添加装饰器auth之后,index.__name__ 等于inner

原文地址:https://www.cnblogs.com/z-qinfeng/p/12302458.html