装饰器的名字:要在被装饰对象正上方单独一行写上
import time
def timmer(func): #fun=最原始那个home的内存地址
def wrapper(*args,**kwargs):
start=time.time()
res=fun(*args,**kwrags)
stop=time.time()
print('run time is %s' %(stop-start))
return res
wrapper.__doc__=func.__doc__
wrapper.-__name__=func.__name__
return wrapper
@timer #index =timmer(index) #index=timmer(最原始那个index的内存地址) #index=wraooer函数的内存地址
def index():
""" 这是index功能 """
print(‘welcome to index page’)
time.sleep(3)
return 123
home(‘egon’) #wrapper(‘egon’)
index() #wrapper()
print(help(index))
print(help(home))
print(index__name__)
print(index.__name__)
from functools import wraps
import time
def timmer(func): #func=最原始那个home的地址
@wraps(func)
def wrapper(*args,**kwargs)
start=time.time()
res=func(*args,**kwargs)
stop=time.time()
print('run time is %s' %(stop-start))
return res
return wrapper
@timmer
def index():
""" 这是index功能 """
print(‘ welcome to index page’)
time.sleep(1)
print(help(index))
print(index.__name__)
from functools import wraps