python函数式编程之装饰器(一) (4)

修改代码,在timmer装饰器中定义并返回被装饰函数执行的返回值

import time def timmer(func): def inner(*args,**kwargs): start_time=time.time() res=func(*args,**kwargs) end_time=time.time() print("run time: %s " %(end_time-start_time)) return res return inner @timmer def index(): time.sleep(2) print("welcome to index page") @timmer def home(name): time.sleep(3) print("welcome to %s home page" % name) return("home func") index_res=index() print(index_res) home_res=home("python") print(home_res)

再次执行函数,查看执行结果

welcome to index page run time: 2.0 None welcome to python home page run time: 3.0 home func

可以看来,原始home函数中定义的返回值被打印出来了

结论:

如果被装饰函数没有定义返回值,timmer装饰器装饰后的返回值为None 而如果被装饰函数定义了返回值,则timmer装饰器装饰后则返回被装饰函数的返回值

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyzwgp.html