参数的拆包和解包用到的前提是:在调用带有多值参数的函数时,其中有一个定参,其他为元组或字典,为了简化传入参数,则需要拆包。
拆包方法为:
在元组变量前加一个星号*
在字典变量前增加两个星号**
def demo1(num,*args):
print(num)
print(args)
demo1(1,(2,3,4))
#输出 : 1
((2, 3, 4),)
demo1(1,2,3,4)
#输出:1
(2, 3, 4)
def demo(*args,**kwargs):
print(args)
print(kwargs)
num_tuple = (1,2,3,4,5,6)
student_info = {"name":"小明","age":12}
print('---- 未拆包,即调用前不加星号,输出-----')
demo(num_tuple,student_info)
print('---- 拆包,即调用前加星号,输出:-----')
demo(*num_tuple,**student_info)
demo(1,2,3,4,5,6,name="小明",age=12)
输出:
---- 未拆包,即调用前不加星号,输出-----
((1, 2, 3, 4, 5, 6), {‘name’: ‘小明’, ‘age’: 12})
{}
---- 拆包,即调用前加星号,输出-----
(1, 2, 3, 4, 5, 6)
{‘name’: ‘小明’, ‘age’: 12}
(1, 2, 3, 4, 5, 6)
{‘name’: ‘小明’, ‘age’: 12}