函数中的不定长参数 —— */**
函数中的不定长参数:在函数处理比声明时更多地参数,这些参数叫做不定长参数
一、加入一个星号 * 的参数会以元祖(tuple)的形式导入,存放所有未命名的变量参数。
def printinfo(arg1,*vartuple): print('我是第一个参数:',arg1) print('我是第二个参数:',vartuple) printinfo(30,40,20,60) #输出结果 ''' 可以发现,第一个参数赋值给arg1后,其他的数据以元祖的形式传递给vartuple中 ''' 我是第一个参数: 30 我是第二个参数: (40, 20, 60)
二、加入两个星号 ** 的参数会以字典的形式导入
def printinfo(arg1,**vartuple): print('我是第一个参数:',arg1) print('我是第二个参数:',vartuple) # 因为使用**的参数是以字典的形式导入,所以不能只写20,40 printinfo(30,a=20,b=40) # 输出结果 我是第一个参数: 30 我是第二个参数: {'a': 20, 'b': 40}
三、声明函数时,参数中的*可以单独出现,但是*后的参数必须使用关键字传入
def f(a,b,*,c): return a+b+c # f(1,2,3) # 上述函数调用报错,* 后的参数必须用关键字传入 print(f(1,2,c=3)) # 输出结果: 6