python里面定义一个函数,该函数的一个符号*是什么意义?代表什么含义,有什么作用

img


请问,names前面的是什么作用呢?
如图所示,python里面定义一个函数,该函数的一个符号
是什么意义?代表什么含义,有什么作用

代表不定长参数,可以接收任意个实参,然后把所有实参组成一个元组。

代表不定长参数,可以接收任意个实参,然后把所有实参组成一个元组。

* 有解包的意思:把可迭代对象的元素全部释放出来

>>> print(*range(5))
0 1 2 3 4
>>> a = [1,2,3]
>>> print(*a)
1 2 3
>>> b = (1,2,3)
>>> print(*b)
1 2 3
>>> a = {'1':1,'2':2,'3':5}
>>> b = {1:1,2:2,3:5}
>>> {**a, **b}
{'1': 1, '2': 2, '3': 5, 1: 1, 2: 2, 3: 5}
>>> def test(*name):
    print(type(name))
    print(name)


>>> test(1,2,3,'abc',[1,2])
<class 'tuple'>
(1, 2, 3, 'abc', [1, 2])