def log(func):
def innerfun(*args,**kw):
print('日志打印纸,,')
return func(*args,**kw)
return innerfun
'''#加上前面的 @log后,now = log(now) 返回的是内层函数=innerfun
所以 now = uinnerfun 调用now()的时候就是调用innerfun(),
innerfun()经过加入新的功能,最后把原来的now()调用返回来了'''
@log
def now(a,b):
print(a+b)
now(1,2)
'''如果装饰器本身要需要传递参数,就需要再写一个函数来返回装饰器,'''
def loog(text):
def infun(fun):
def innfun(*args,**kw):
print(text)
return fun(*args,**kw)
return innfun
return infun
@loog('我就是我')
def fun(a,b):
print(a+b)
fun(1,2)