python函数中参数 *args 和 **kwargs的含义
“*” 的作用
一个“”号作用:* 将tuple或list的元素进行unpack传入,作为多个参数;
两个“”号的作用:将dict*类型数据数据作为参数传入;
kwargs: keyword argument
args: argument
位置参数(positional argument):
位置参数只能由参数位置决定,所以位置参数一定要在前面(kwargs没有传参);
关键词参数(keyword argument):
关键词传参方式(keyword = somekey);
def fun(a, b, *args, **kwargs):
print(a, b)
print(args)
print(kwargs)
fun(0, 1, 2, 3, index_one = 10, index_two = 20)
输出:
print(a, b):
0 1
print(args):
(2, 3)
# *args将不定参数形式剩下没有关键字的参数且没有关键字的参数变成一个tuple
print(kwargs) :
{'index_one': 10, 'index_two': 20}
# **kwargs 将带有关键字的参数收集起来变成dict