Python 收集参数(可变参数) *para和 **para的使用

收集参数也叫作可变参数,因为有时候我们也不知道输入的参数有多少个,所以需要将所有输入参数打包进一个输入参数中,这就是收集参数,其有两种格式,一种是用元组收集*para,一种是用字典收集**para,下面来看使用方法。

def test(*para):
	print('输入参数个数:',len(para))
	print(para)
test(1,2,3,4,5,6)

在这里插入图片描述
注意区别:

def test(*para):
 print('输入参数个数:',len(para))
 print(*para)
test(1,2,3,4,5,6)

在这里插入图片描述
如果说用单个形参代表多个参数,那么注意此时输入参数还是一个,如下:

def test(*para):
 print('输入参数个数:',len(para))
 print(para)

a = (1,2,3,4,5,6) # 输入参数为元组
test(a)

在这里插入图片描述

def test(*para):
 print('输入参数个数:',len(para))
 print(*para) # 差别在这,一个有引号一个没有
a = (1,2,3,4,5,6) # 这里的输入参数为元组
test(a)

在这里插入图片描述
此时print的输入参数有没有星号*都是一样的输入元组,但是如果说输入参数用列表存储就不一样了,看下面的两个例子:

def test(*para):
 print('输入参数个数:',len(para))
 print(para)

a = [1,2,3,4,5,6]
test(a)

在这里插入图片描述

def test(*para):
 print('输入参数个数:',len(para))
 print(*para)

a = [1,2,3,4,5,6]
test(a)

在这里插入图片描述
看出差别没有,上面是元组,但是下面就是列表了。


如果说除了收集参数之外还有其他必需的参数,最好指定默认参数,并且在调用函数的时候需要指明参数名,例如:

def test(*para,two = 0):
 print('输入参数个数:',len(para))
 print(para)
 print(two)

a = {1:'one',2:'tow'}
test(a,2)

在这里插入图片描述
这说明所有的输入参数都被理解成了收集参数,如果需要给其他参数赋值,要改为:

def test(*para,two = 0):
 print('输入参数个数:',len(para))
 print(para)
 print(two)

a = {1:'one',2:'tow'}
test(a,two = 2)

在这里插入图片描述


再看两个星号的输入参数**para

def test(**para):
 print('输入参数个数:',len(para))
 print(para)

test(a = 1,b = 2)

在这里插入图片描述
此时返回的就是字典了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章