1.处在函数定义位置
主要作用是万能形参,不固定形参数量
*args:聚合成一个元组,位置实参有多个,最终都聚合成一个元组形式。
**kwargs: 聚合成一个字典,适用于关键字参数。
def eat(*args):
print (f'args is {args}')
sum = 0
for i in args:
sum += i
print ('*'* 10)
print (sum)
eat(1,2,3,4,5,6)
def eat(*args, **kwargs):
print (args)
print (kwargs)
eat(1,2,3,4,5,6,a=1,b=2)
2.处在函数执行位置:
*args:将序列打散
**kwargs:将多个字典打散
def aaa(*args, **kwargs):
print (args, kwargs)
list1 = [1,2,3]
list2 = [4,5,6]
dict1 = {'name':"alex","age":28}
dict2 = {'a':'abc','b':'efg'}
aaa(*list1,*list2, **dict1, **dict2)
3.处在函数外
作用:处理多余赋值
a, b, *c = [1, 2, 3, 4, 5]
print (a, b, c)