函数中的不定长参数 —— */**

函数中的不定长参数:在函数处理比声明时更多地参数,这些参数叫做不定长参数

一、加入一个星号 * 的参数会以元祖(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

  

原文地址:https://www.cnblogs.com/xiaoqing-ing/p/15350102.html