有返回值和带参数的修饰器

匿名 (未验证) 提交于 2019-12-02 23:57:01

加上返回值的

import timedef timmer(func): #func=test    def wrapper():        start_time=time.time()        res=func() #就是在运行test()        stop_time = time.time()        print('运行时间是%s' %(stop_time-start_time))        return res    return wrapper@timmer #test=timmer(test)def test():    time.sleep(3)    print('test函数运行完毕')    return '这是test的返回值'res=test()  #就是在运行wrapperprint(res)加上参数
import timedef timmer(func): #func=test1    def wrapper(*args,**kwargs): #test('linhaifeng',age=18)  args=('linhaifeng')  kwargs={'age':18}        start_time=time.time()        res=func(*args,**kwargs) #就是在运行test()         func(*('linhaifeng'),**{'age':18})        stop_time = time.time()        print('运行时间是%s' %(stop_time-start_time))        return res    return wrapper# @timmer #test=timmer(test)def test(name,age):    time.sleep(3)    print('test函数运行完毕,名字是【%s】 年龄是【%s】' %(name,age))    return '这是test的返回值'@timmerdef test1(name,age,gender):    time.sleep(1)    print('test1函数运行完毕,名字是【%s】 年龄是【%s】 性别【%s】' %(name,age,gender))    return '这是test的返回值'# res=test('linhaifeng',age=18)  #就是在运行wrapper# # print(res)# test1('alex',18,'male')test1('alex',18,'male')# def test2(name,age,gender): #test2(*('alex',18,'male','x','y'),**{})#     #name,age,gender=('alex',18,'male','x','y')#     print(name)#     print(age)#     print(gender)## def test1(*args,**kwargs):#     test2(*args,**kwargs)  #args=('alex',18,'male','x','y') kwargs={}## # test2('alex',18,gender='male')## test1('alex',18,'male')
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!