import time
# 计算函数运行时长,将要计算运行时长的函数作为参数传入,返回运行的值
def countTime(func):
print("进入countTime函数")
#我们的wrapper函数的参数为*args和**kwargs,表示可以接受任意参数
def wrap(*args,**kwargs):
print("进入wrap函数")
print("")
t1 = time.time()
#运行函数func
print("进入func函数")
func(*args,**kwargs)
print("func函数运行结束")
print("执行时长为:",time.time()-t1)
'''
返回值必须是和定义的函数名一致,但是不带()。区别在于:
带():表示将运行的结果返回,即先运行再返回
不带():表示将整个函数作为一个对象返回
'''
return wrap
#在定义函数前一行使用修饰器,表示下一行函数作为参数传入到修饰器中,当每次运行add()的时候都会将add函数对象作为参数输入到countTime中进行运行
#装饰器和函数运行顺序,先将被修饰函数作为参数传给装饰器第一层,再将函数的参数传给装饰器第二层函数
@countTime
def add(a,b):
print(a+b)
if __name__ == '__main__':
add(1,2)
【python装饰器】函数装饰器@的使用
最新推荐文章于 2024-07-28 15:46:11 发布