python装饰器(fuctional decorators)就是用于拓展原来函数功能的一种函数,目的是在不改变原函数名(或类名)的情况下,给函数增加新的功能。
如果我们需要实现一个统计函数执行时间的功能而不能修改原来的函数,就可以使用装饰器
- 无参装饰器
def timeLimited(func):
def wapper():
start = time.time()
func()
print("time used:{}".format(int((time.time() - start)*1000)))
return wapper
@timeLimited
def sum1():
sum = 1 + 2
print(sum)
- 带参数的装饰器
def timeLimited(func):
def wapper(a, b):
start = time.time()
func(a, b)
print("time used:{}".format(int((time.time() - start)*1000)))
return wapper
@timeLimited
def sum1(a, b):
sum = a + b
return sum
- 含有返回值的装饰器
def timeLimited(func):
def wapper(a, b):
start = time.time()
result = func(a, b)
print("time used:{}".format(int((time.time() - start) * 1000)))
return result
return wapper
@timeLimited
def sum1(a, b):
sum = a + b
return sum
print(sum1(1, 2))