ITxiaobaibai 2019-11-25
#带参数以及返回值的函数装饰器,上一篇博客记录了无参数函数装饰器写法以及使用方案,当函数有参数以及返回值时需要将装饰器进行如下修稿 def timer(fun): def deco(*args,**kwargs): #被装饰函数实际是执行deco,所以在此将被装饰函数参数进行传递 start_time = time.time() res = fun(*args,**kwargs) #将被装饰函数的返回值接收 stop_time = time.time() return res #返回被装饰函数的返回值 return deco @timer #被装饰函数带参数以及有显式返回值 def add(x, y): time.sleep(1) print("this is add func") return x+y print(add(1, 2))