被装饰函数含参数
def timer(func):
def gf(name): # 加参数
start = time.time()
func(name) # 加参数
end = time.time()
res = end - start
print('时间结果是:', res)
return gf
@timer # foo = timer(foo)
def foo(name):
time.sleep(3)
print('in foo',name)
foo('hello') # 接上一篇,foo() 其实就是 gf()
不定长参数
def timer(func):
def gf(*args,**kwargs): # 就只是改了这里和下面的参数
start = time.time()
func(*args,**kwargs) # 就只是改了这里
end = time.time()
res = end - start
print('时间结果是:', res)
return gf
@timer # foo = timer(foo)
def foo(a,b,c):
time.sleep(3)
print('in foo',a,b,c)
foo('3141592653','gfifigf','79846543635')
装饰器含参数
def timer(time_type):
print(time_type)
def outer(func):
def inner(*args,**kwargs):
start = time.time()
func(*args,**kwargs)
end = time.time()
res = end - start
print('时间结果是:', res)
return inner
return outer
@timer('min') # foo = timer(foo)
def foo(a,b,c):
time.sleep(3)
print('in foo',a,b,c)
foo('woniu','gfifigf','79846543635')