**(双星)和*(星)对Python中的参数有什么作用?

在Python函数中,以单星号(星号)为前缀的参数有助于从调用环境接收可变数量的参数

>>> def function(*arg):
      for i in arg:
        print (i)

>>> function(1,2,3,4,5)
1
2
3
4
5

当必须将可变数量的关键字参数传递给函数时,在函数定义中使用带有双星号(星号)的参数

>>> def function(**arg):
      for i in arg:
        print (i,arg[i])


>>> function(a=1, b=2, c=3, d=4)
a 1
b 2
c 3
d 4

在Python 3中,可以在赋值语句中定义一个带有星号的变量,以实现对可迭代对象的扩展解压缩。

>>> a,*b=[1,2,3,4]
>>> a
1
>>> b
[2, 3, 4]
>>> a,*b,c=[1,2,3,4]
>>> a
1
>>> b
[2, 3]
>>> c
4