装饰器本身就是函数,其作用就是给其它函数提供额外的附加功能,不会修改被装饰函数的内容也不会修改被装饰函数的引用

函数其实也是‘变量’

def log(func):

     def wrapper(*args,**kwargs):

           print('call now......")

           func(*args,**kwargs)

    return wrapper

@log

def now(*args,**kwargs):

      print('this is ok')