本文主要是介绍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)
此时返回的就是字典了。
这篇关于Python 收集参数(可变参数) *para和 **para的使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!