python拆包与装包-*args,**kwargs

1,*args:代表可传递多个形参,**kwargs:带便可传递多个位置参数

def test_args(*args):
    print(args)
if __name__ == '__main__':
    test_args('1','b',[1,2,3])
#打印结果:('1', 'b', [1, 2, 3])
def test_kwargs(**kwargs):
    print(kwargs)
if __name__ == '__main__':
    test_kwargs(name='zxb',age=18)
#打印结果:{'name': 'zxb', 'age': 18}
def test_args_kwargs(*args,**kwargs):
    print('形参是:',args)
    print('实参是:',kwargs)
if __name__ == '__main__':
    test_args_kwargs(1,2,3,name='zxb',age='18')
#打印结果是:形参是: (1, 2, 3),实参是: {'name': 'zxb', 'age': '18'}

2.字典当作位置参数传入:

注意:字典拆包两个*

#字典可以当作位置参数传入
def dic_kwargs(**kwargs):
    print(kwargs) #里面在进行装包


if __name__ == '__main__':
    dic = {'name':18,'age':18}
    dic_kwargs(**dic) #相对与传进去的是name='zxb',age='18'
    #打印结果为:{'name': 18, 'age': 18}

3.列表当作位置参数传入:

注意:列表拆包 一个*

#列表当作形参传入
def list_args(*args):
    print(args)#传进去的参数再进行装包


if __name__ == '__main__':
    lis=[1,2,3,'a',['zxb','zxl'],{'age':'20'}]
    list_args(*lis)#列表的里面的数据进行解包:1,2,3,'a',['zxb','zxl'],{'age':'20'}
    #打印结果为:(1, 2, 3, 'a', ['zxb', 'zxl'], {'age': '20'})
原文地址:https://www.cnblogs.com/zhuxibo/p/14296970.html