python中,在形参前面加上“*”与“”“**”,称为动态参数
加“*”时,函数可接受任意多个参数,全部放入一个元祖中
加“**”时,函数接受参数时,放入字典中
===============================================
def F(*args):
print(args)
li = [11,22,33,44]
F(li)
F(*li)
# ([11, 22, 33, 44],)
# (11, 22, 33, 44)
===============================================
def F(**kwargs):
print(kwargs)
li = {"k1":1,"k2":2}
F(k=li)
F(**li)
# {'k': {'k2': 2, 'k1': 1}}
# {'k2': 2, 'k1': 1}
===============================================
def F(p,*args,**kwargs):
print(p)
print(args)
print(kwargs)
F(11,"abc",[789],k1=123,k2="456")
# 11
# ('abc', [789])
# {'k1': 123, 'k2': '456'}
带一个星号(*)参数的函数传入的参数存储为一个元组(tuple);
而带两个星号(*)参数的函数传入的参数则存储为一个字典(dict)
由于传入的参数个数不定,所以当与普通参数一同使用时,必须把带星号的参数放在最后