<div class=”cnblogs_code”>
wrapper(f): inner(*args,**kwargs): ret = f(*args,**kwargs) ret#8 inner#4 func(*args,**kwargs):#2 #被装饰函数 func(1,5,6,a=2,b=1)
装饰器固定格式如上
注意:print()里面不能放**kwargs
然后print(args,kwargs)输出的是元祖和字典
def wrapper(f):#1def inner(*args,**kwargs):#3ret = f(*args,**kwargs)#5return ret#8return inner#4@wrapper #装饰器名字 #func=wrapper(func),此时func实际上是inner的内存地址def func(*args,**kwargs):#2 #被装饰函数print(args,kwargs)#6print(kwargs
<div class=”cnblogs_code”>
wrapper(f): inner(*args,**kwargs): ret = f(*args,**kwargs) ret#8 inner#4 func(*args,**kwargs):#2 #被装饰函数 func(1,5,6,a=2,b=1)
装饰器固定格式如上
注意:print()里面不能放**kwargs
然后print(args,kwargs)输出的是元祖和字典