def wrapper(f):#1    
    def inner(*args,**kwargs):#3
        ret = f(*args,**kwargs)#5
        return ret#8
    return inner#4
@wrapper         #装饰器名字            #func=wrapper(func),此时func实际上是inner的内存地址
def func(*args,**kwargs):#2   #被装饰函数
    print(args,kwargs)#6
    print(kwargs)#7

func(1,5,6,a=2,b=1)

装饰器固定格式如上

注意:print()里面不能放**kwargs

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

然后print(args,kwargs)输出的是元祖和字典

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄