第二十八节 不定长参数的函数进行装饰

def set_func(func):
    # print('装饰器开始装饰了...')
    def call_func(*args, **kwargs):
        print('....权限1.....')
        print('....权限2.....')
        # func(*args, **kwargs)  # 不行,相当于传递了两个参数:一个元组,一个字典
        func(*args, **kwargs)  # 拆包,如果传进100和两百
    return call_func
    
@set_func  # 等价于 test1 = set_func(test1) 
def test1(num, *args, **kwargs):
    print(".......这是test1......%d" % num)
    print(args)
    print(kwargs)
    # print(30*'@')
    # print(*args)
    # print(**kwargs)

# test1(100)
# test1(100, 200) 
test1(100, 200, mm=300)
原文地址:https://www.cnblogs.com/kogmaw/p/12602559.html