1、定义函数参数时使用*、**
def test(*args)
*args表示把传进来的位置参数都装在元组args里面
def test(*args):
print(args[1])
test(1,2,3)
输出:2
def test(**kwargs)
**kwargs表示把传进来的位置参数都装在字典kwargs里面
def test(**kwargs):
print(kwargs['b'])
test(a=1,b=2,c=3)
输出:2
2、调用函数时
test(*args)表示把列表或元组args中每个元素,当作位置参数传进去
def test(a,b,c):
print(b)
L=[1,2,3]
test(*L)
输出:2
test(**kwargs)表示把字典kwargs变成关键字参数传递
def test(a,b,c):
print(b)
D={'a':1,'c':2,'b':3}
test(**D)
输出:3
注意:普通的参数定义和传递方式和星号可以共存,但*必须放在所有的位置参数之后,而**必须放在所有的关键字参数的最后。