'''具有返回值和参数的装饰器:'''
improt time
def timer(func)
def demo(*args, **kwargs):
beg = time.time()
rst = func(*args, **kwargs)
end = time.time()
print(end-beg)
return rst
return demo
@timer
def Inst(parameter):
time.sleep(2)
print("time begin running!")
return "time end"
Inst()
'''
带参数的装饰器:
不同的函数有不同的装饰器
'''
@decorator(parameter = value)
import time
def timer(parameter):
def outer_wrapper(func):
def wrapper(*args, **kwargs):
if parameter == 'one':
beg = time.time()
func(*args, **kwargs)
end = time.time()
print("the one is :", end - beg)
elif parameter == 'two':
beg = time.time()
func(*args, **kwargs)
end = time.time()
print("the two is :", end - beg)
return wrapper
return outer_wrapper
@timer(parameter='one')
def one():
time.sleep(2)
print("in the one")
@timer(parameter='two')
def two():
time.sleep(2)
print("in the two")
one()
two()