不定参数的引入可以提高程序的灵活性
不定长参数
- *不定长参数1
收录多余实参
def test(a,b,*c):
print(c) #此时c便成为了不定参数
test(11,22,33,44,55)
test(11) #错误,形参至少需要两个实参
>>>(33, 44, 55)
- *不定长参数2
收录有名字的实参
def test(a,b,*c,**d):
print(a)
print(b)
print(c)
print(d) #**d收录有名字的实参
test(11,22,33,44,age=55,task=233)
>>>
11
22
(33, 44)
{'age': 55, 'task': 233}
具体应用
不限定实参个数的加法函数
def test(*c):
result=0
for num in c:
result+=num
print(result)
test(11,22,33,44)
拆包(元组、字典)
在实参前加*或**即表示拆包元组或字典,将其中的组成单元打散传递。
def test(a,*args,**kwargs):
print(a)
print(args)
print(kwargs)
A = (11,22,33)
B = {"name":"laowang","age":18}
test(11,*A,**B) #
>>>
11
(11, 22, 33)
{'name': 'laowang', 'age': 18}