装饰器。

定义装饰器

def outer(func):
    def inner(*args,**kwargs):
        '''添加装饰功能'''
        start = time.time()
        print('*****装饰器******')
        ret = func(*args,**kwargs)  #接收被装饰函数的返回值
        time.sleep(1)
        over = time.time()
        spend=str(over-start)
        print('cost %s secends'%spend)
        return ret  #返回被装饰函数的返回值

    return inner

调用

@outer
def say(name,age):
    #函数的参数理论上是无限制的,但实际上最多6个
    print('My name is %s,%d years old'%(name,age))
    return 'say的返回值'

a = say('Eric',23)
print(a)   #如果定义装饰器时没有return ret ,则此处打印的是inner函数的返回值(原本就是。。。)

 

posted @ 2018-04-21 17:59  web123  阅读(126)  评论(0)    收藏  举报