装饰器的名字:要在被装饰对象正上方单独一行写上

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

 

posted on 2018-09-27 16:30  frank007  阅读(106)  评论(0编辑  收藏  举报