python基础 带参数以及返回值的函数装饰器

#带参数以及返回值的函数装饰器,上一篇博客记录了无参数函数装饰器写法以及使用方案,当函数有参数以及返回值时需要将装饰器进行如下修稿
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))

相关推荐