在定义函数的时候,若实参个数不确定,形参就可以使用收集参数来“搞定”,仅需要在参数前面加上星号(*)即可。
1、 使用收集参数来表示形式参数时,需要在参数前加上星号。
>>> def a(*x): print("total %d parameter!" % len(x)) print("second parameter:",x[1]) >>> a(3,8,4,7,9) total 5 parameter! second parameter: 8
2、使用参数前加星号的方法来表示未知实参个数的形式参数的时候,形参被打包为元组
>>> def a(*x): print("total parameter:", len(x)) print("second parameter:", x[1]) print(type(x)) >>> a("aaa","dddd","bbbb","cccc") total parameter: 4 second parameter: dddd <class 'tuple'>
3、收集参数可以和关键字参数结合使用
>>> def a(*x,y): print("collection parameter are:", x) print("key word parameter is:", y) >>> a(4,2,"saaa","dddd",y = "88888") collection parameter are: (4, 2, 'saaa', 'dddd') key word parameter is: 88888
4、
在函数的定义中,收集参数前面的星号(*)起到的作用称为“打包”操作,就是将多个参数打包成一个元组的形式进行存储。
星号(*)在形式参数中的作用是打包,而在实际参数中的作用相反,起到“解包”的作用。
>>> a = "helloworld" >>> print(*a) h e l l o w o r l d >>> a = (3,1,8,9,4) >>> print(*a) 3 1 8 9 4 >>> a = ["aaa","ccc","ddd","bbb"] >>> print(*a) aaa ccc ddd bbb