*args表示不定长的位置参数
**kwargs表示不定长的关键字参数
例子
def foo(*args, **kwargs):
# *args表示不定长的位置参数.
print(type(args))
print(args)
# **kwargs 表示不定长的关键词参数.
print(type(kwargs))
print(kwargs)
foo(1, 2, 3, 5, 6, a=4, b=5, c=6)
# foo(*(1, 2, 3, 5, 6), **{'a': 4, 'b': 5, 'c': 6}) #两者输出相同
<class ‘tuple’>
(1, 2, 3, 5, 6)
<class ‘dict’>
{‘a’: 4, ‘b’: 5, ‘c’: 6}
# *可以把元组或列表中的内容进行解开.
# **可以把字典的内容解开.
foo(*(1, 2, 3, 5, 6), **{'a': 4, 'b': 5, 'c': 6})
<class ‘tuple’>
(1, 2, 3, 5, 6)
<class ‘dict’>
{‘a’: 4, ‘b’: 5, ‘c’: 6}