python函数中参数 *args 和 **kwargs的含义

python函数中参数 *args 和 **kwargs的含义

“*” 的作用

一个“”号作用:* 将tuplelist的元素进行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

你可能感兴趣的:(python函数中参数 *args 和 **kwargs的含义)