格式:在执行的参数前加上@functon

 

例1:传一个参数

#模拟验证功能
def login(auth):
    def fun(arg):   #为了避免程序一执行的时候就执行验证,需要再加一层函数。
        print('验证成功')
        return auth(arg)   #相当于执行home('echo')函数
    return fun

@login  #添加装饰器
def home(name):
    print('welcome %s to home page!' %name)

home('echo')  #传入一个参数

输出结果:

验证成功
welcome echo to home page!

 

例2:传多参数

def login(auth):
    def fun(*args,**kwargs):  
        print('验证成功')
        return auth(*args,**kwargs)   
    return fun

@login
def tv(name,passwd):
    print('welcome %s to tv page!' %name)

tv('pingy',123)  #传入多个参数

输出结果:

验证成功
welcome pingy to tv page!

 

posted on 2016-09-20 10:19  PingY  阅读(257)  评论(0编辑  收藏  举报