python装饰器的用法
什么是装饰器?简单的说装饰器就是修改其他函数的功能的函数,比如:函数调用前需要先进性验证,总不能所有的模块都修改对吧?
官方解释:
装饰器是要把原来的函数装饰成新的函数,并且返回这个函数本身的高阶函数。
案例1:
我们有一个写好的函数,现在需要增加计算时长的功能,怎么实现?
def add(x, y): print(x,y) add(1,2)
---------------------------
我们只需要写个计算时长的装饰器函数就可以:
import time
def timmer(func):
def w(*args, **kwargs):
start_time = time.time()
# 让进程睡一秒
time.sleep(1)
# 调用被装饰的函数
result = func(*args, **kwargs)
stop_time = time.time()
print("{func} spend {time} ".format(func = "add", time = stop_time-start_time))
return result
return w
@timmer
def add(x, y):
print(x,y)
add(1,2)